我的数据库中的表中有许多行(成分),我正在使用以下代码来迭代并使用每个名称填充视图,但是我希望能够显示子代/父代(数据库中的列),我能够正确注销这些值,但是当我尝试如下所示进行回显时,我会收到“消息:未定义索引:父母”和“消息:未定义索引:孩子”;
<?php foreach ($ingredient as $row => $key) { ?>
<tr>
<td><?php echo $row + 1; ?> </td>
<td><?php echo $key['name']; ?> </td>
<?php ChromePhp::log($key['parents']); ?>
<td><?php echo $key['parents']; ?> </td>
<?php ChromePhp::log($key['children']); ?>
<td><?php echo $key['children']; ?> </td>
<td>
</tr>
<?php } ?>
我很困惑,因为我没有问题将其注销。 我以为这可能是由于空值所致,所以我为子级/父级分配了以下每一行一个字符串值;
但错误仍然存在。
这是浏览器中记录的输出;
<?php ChromePhp::log($key); ?>
的输出
编辑:这是我构建$ ingredients数组的方式;
<?php
function get_ingredient()
{
$qry = "SELECT CONCAT(UPPER(LEFT(i.name, 1)), LCASE(SUBSTRING(`name`, 2))) as name,i.id as id,'ingredient' as type, i.parents as parents, i.children as children FROM `ingredient` i WHERE i.is_del=0 order by i.name asc";
$qry = $this->db->query($qry);
if ($qry->num_rows() > 0) {
$ingr = $qry->result_array();
} else {
$ingr = array();
}
}
?>
我认为我缺少一些基本知识,我们将不胜感激。干杯。
答案 0 :(得分:0)
我的数组有两组数据,我通过将数组限制为一组来解决了这个问题。
答案 1 :(得分:0)
<?php foreach ($ingredient as $row => $key) { ?>
<tr>
<td><?php echo $row + 1; ?> </td>
<?php if(isset($key['name']) && !empty($key['name'])):?>
<td><?php echo $key['name']; ?> </td>
<?php endif;?>
<?php if(isset($key['parents']) && !empty($key['parents'])):?>
<?php ChromePhp::log($key['parents']); ?>
<td><?php echo $key['parents']; ?> </td>
<?php endif;?>
<?php if(isset($key['children']) && !empty($key['children'])):?>
<?php ChromePhp::log($key['children']); ?>
<td><?php echo $key['children']; ?> </td>
<?php endif;?>
</tr>
答案 2 :(得分:-1)
$ key看起来像一个对象,因此您必须使用->访问它,因此要获得name的值,请使用$ key-> name,$ key-> parents