无法回显数组:只能打印它:并且只能回显特定数组
can't echo the array: only able to print it: and only echo the specific array
<?php
foreach ($recorded as $rows )
{
echo "<pre>";
print_r ($rows);
echo "</pre>";
echo "<img src='".base_url()."upload/thumbs/".$rows->file_name."'/>";
}
?>
当我打印 $rows
时,结果是:
Array
(
[0] => stdClass Object
(
[file_name] => steve-big.jpg
)
[1] => stdClass Object
(
[file_name] => steve1-big.jpg
)
[2] => stdClass Object
(
[file_name] => steve2-big.jpg
)
[3] => stdClass Object
(
[file_name] => steve3-big.jpg
)
)
Array
(
[0] => stdClass Object
(
[file_name] => size-5-5-width-m.jpg
)
[1] => stdClass Object
(
[file_name] => 3316783.jpg
)
[2] => stdClass Object
(
[file_name] => 3316786.jpg
)
[3] => stdClass Object
(
[file_name] => 3316792.jpg
)
)
但是为什么我不能回显呢?
我正在使用 codeIgniter,这是我收到的错误消息:
A PHP Error was encountered | Severity: Notice | Message: Trying to get property of non-object | Filename: views/mothershop.php | Line Number: 17
但是,如果我给它一个像这样的特定数字,我只能回应它:$rows[0]->file_name
、$rows[1]
,等等。
请帮忙,这真的让我很困惑。
检查错误:
A PHP Error was encountered | Severity: Notice | Message: Trying to get property of non-object | Filename: views/mothershop.php | Line Number: 17
因为$rows
是一个数组,没有属性调用file_name
。
我们可以看到 $rows
再次包含数组。所以你不能 echo
它。相反,您必须使用 print_r
,到 echo
您必须迭代 $row
数组。试试下面的代码。
<?php
foreach ($recorded as $rows )
{
// echo "<pre>";
// print_r ($rows);
// echo "</pre>";
foreach ($rows as $r)
{
echo "<img src='".base_url()."upload/thumbs/".$r->file_name."'/>";
}
}
?>
这可能对你有帮助。
尝试
<?php
foreach ($recorded as $rows=>$val )
{
echo $val['file_name'].'<br/>';
}
?>
试试这个代码
<?php
foreach ($recorded as $rows )
{
echo "<img src='".base_url()."upload/thumbs".$rows['file_name']."'/>";
}
?>
尝试在行上再次重申
因为结果的数组结构是二维数组
foreach ($recorded as $rows ) {
foreach ($rows as $key => $value) {
echo "<img src='".base_url()."upload/thumbs/".$value->file_name."'/>";
}
}
这应该适合你:
foreach ($recorded as $rows)
array_walk($rows, function($v){
echo "<img src='" . base_url() . "upload/thumbs/" . $v->file_name . "'/>";
});
试试这个:
$baseUrl = base_url();
foreach ($recorded as &$rows) {
foreach ($rows as &$row) {
echo '<img src="'.$baseUrl.'upload/thumbs/'.$row->file_name.'"/>';
}
}
<?php
foreach ($recorded as $rows )
{
echo "<pre>";
print_r ($rows);
echo "</pre>";
echo "<img src='".base_url()."upload/thumbs/".$rows->file_name."'/>";
}
?>
当我打印 $rows
时,结果是:
Array
(
[0] => stdClass Object
(
[file_name] => steve-big.jpg
)
[1] => stdClass Object
(
[file_name] => steve1-big.jpg
)
[2] => stdClass Object
(
[file_name] => steve2-big.jpg
)
[3] => stdClass Object
(
[file_name] => steve3-big.jpg
)
)
Array
(
[0] => stdClass Object
(
[file_name] => size-5-5-width-m.jpg
)
[1] => stdClass Object
(
[file_name] => 3316783.jpg
)
[2] => stdClass Object
(
[file_name] => 3316786.jpg
)
[3] => stdClass Object
(
[file_name] => 3316792.jpg
)
)
但是为什么我不能回显呢?
我正在使用 codeIgniter,这是我收到的错误消息:
A PHP Error was encountered | Severity: Notice | Message: Trying to get property of non-object | Filename: views/mothershop.php | Line Number: 17
但是,如果我给它一个像这样的特定数字,我只能回应它:$rows[0]->file_name
、$rows[1]
,等等。
请帮忙,这真的让我很困惑。
检查错误:
A PHP Error was encountered | Severity: Notice | Message: Trying to get property of non-object | Filename: views/mothershop.php | Line Number: 17
因为$rows
是一个数组,没有属性调用file_name
。
我们可以看到 $rows
再次包含数组。所以你不能 echo
它。相反,您必须使用 print_r
,到 echo
您必须迭代 $row
数组。试试下面的代码。
<?php
foreach ($recorded as $rows )
{
// echo "<pre>";
// print_r ($rows);
// echo "</pre>";
foreach ($rows as $r)
{
echo "<img src='".base_url()."upload/thumbs/".$r->file_name."'/>";
}
}
?>
这可能对你有帮助。
尝试
<?php
foreach ($recorded as $rows=>$val )
{
echo $val['file_name'].'<br/>';
}
?>
试试这个代码
<?php
foreach ($recorded as $rows )
{
echo "<img src='".base_url()."upload/thumbs".$rows['file_name']."'/>";
}
?>
尝试在行上再次重申 因为结果的数组结构是二维数组
foreach ($recorded as $rows ) {
foreach ($rows as $key => $value) {
echo "<img src='".base_url()."upload/thumbs/".$value->file_name."'/>";
}
}
这应该适合你:
foreach ($recorded as $rows)
array_walk($rows, function($v){
echo "<img src='" . base_url() . "upload/thumbs/" . $v->file_name . "'/>";
});
试试这个:
$baseUrl = base_url();
foreach ($recorded as &$rows) {
foreach ($rows as &$row) {
echo '<img src="'.$baseUrl.'upload/thumbs/'.$row->file_name.'"/>';
}
}