Php foreach循环未定义索引:title
我试图使用foreach循环输出一些博客文章的结果,但我不断得到错误“Undefined index:title” 我是php的noob,如果这有什么不同的话,我也在使用codeigniter(我认为不应该)。如果我使用下面的代码,我可以打印出文章的标题,但这不是我想要的,因为我想在以后添加更多的字段Php foreach循环未定义索引:title,php,codeigniter,Php,Codeigniter,我试图使用foreach循环输出一些博客文章的结果,但我不断得到错误“Undefined index:title” 我是php的noob,如果这有什么不同的话,我也在使用codeigniter(我认为不应该)。如果我使用下面的代码,我可以打印出文章的标题,但这不是我想要的,因为我想在以后添加更多的字段 <?php foreach ($post['title] as $post_item):?> <div class="postDiv"> <h4><?ph
<?php foreach ($post['title] as $post_item):?>
<div class="postDiv">
<h4><?php echo $post_item;?></h4>
</div>
<?php endforeach;?>
您的post信息似乎基于数字引用被分割到多个数组键上,因此您可以使用该数字键引用访问包含其余数据的同级数组键
foreach($post['id'] as $key => $id) {
$title = $post['title'][$key];
$summary = $post['summary'][$key];
$content = $post['content'][$key];
}
您的阵列在某种程度上与您的设计不一致
<?php foreach (array_keys($post["id"]) as $key):?>
<div class="postDiv">
<h4><?php echo $post['title'][$key];?></h4>
<p><?php echo $post['summary'][$key];?></p>
</div>
<?php endforeach;?>
仅供您理解:
使用foreach($a as$k),您将迭代一个数组$a,并在每次迭代中放入$k中的一个第一级元素
所以,在第一次迭代中
$post_项目将被删除
array(5) {
[0]=> string(2) "15"
[1]=> string(2) "16"
[2]=> string(2) "17"
[3]=> string(2) "18"
[4]=> string(2) "19" }
第二个$post_项目将是:
array(5) {
[0]=> string(3) "234"
[1]=> string(2) "11"
[2]=> string(1) "2"
[3]=> string(3) "444"
[4]=> string(5) "title" }
等等
我甚至不认为这个secodn级别的索引,0,1,2,3,4,5对您有特定的意义,而且可以肯定的是,如果您这样做,foreach(array_keys($post[“id”])…)
将等同于从harcoded 0迭代到count($post),如果您将foreach($post[“id”]作为$k)进行迭代
然后使用$k作为其他元素的索引,这是不可行的,因为id的值不是任何其他元素的键。因此,您将得到许多未定义的索引警告
而且我也不确定每个元素的右边的值是否真的对你有用。因此,我们可以在这里找到一些技巧来获得您想要的结果,但您需要修复的是,在创建$post之前的一步,即$post
中每个数组值的$key。事实上,$post\u item['summary']
应该会出现相同的错误。很抱歉,是的,summaryHi Carlos也出现了相同的错误。我确实根据下面的评论修复了它。稍后我会发布完整的代码today@malkocoglu我不想责怪你的代码,抱歉误会。我说的不起作用的不是代码,这是可以的,而是解决方案。对于这个当前的问题,它是一个有效的解决方案,但我认为真正的问题是一步之前。让我们看看:第二级不是一个关联数组,所以array\u keys($post[“id”]
与从0到计数的相同($post[“id”])-1
。此外,项目是混合的。可能这不是最好的数组,并且可能会由此产生一些进一步的错误。在其他博客中,您会发现一个数组,其中第一级中的每个项目都是一篇文章,有自己的文章data@Carlos罗伯斯,我同意你的看法……对不起,恐怕我确实看错了什么东西,或者我在解释时出错了我所看到的我认为不完全正确。我删除了这里的评论,并将在另一条中解释我自己。
<?php foreach (array_keys($post["id"]) as $key):?>
<div class="postDiv">
<h4><?php echo $post['title'][$key];?></h4>
<p><?php echo $post['summary'][$key];?></p>
</div>
<?php endforeach;?>
array(5) {
[0]=> string(2) "15"
[1]=> string(2) "16"
[2]=> string(2) "17"
[3]=> string(2) "18"
[4]=> string(2) "19" }
array(5) {
[0]=> string(3) "234"
[1]=> string(2) "11"
[2]=> string(1) "2"
[3]=> string(3) "444"
[4]=> string(5) "title" }