Foreach循环不会比较
我是一个编程noob的一些东西,我被困在一个问题试图回声只有我的数组的几个项目,而不是数组中的所有项目。Foreach循环不会比较
所以我有一个包含我的数组$ product的products.php文件,我现在试图从我的索引页调用这个数组,我不仅要调用这个数组,而且要让产品在该数组列出最后4个产品,而不是所有这些产品。
所以现在我的index.php我创造了这个代码:
$total_products = count($products);
$position = 0;
$list_view_html = "";
foreach($products as $product_id => $product) {
$position = $position + 1;
if($total_product - $position < 4){
$list_view_html = $list_view_html . get_list_view_html($product_id,$product);
}
}
echo $list_view_html;
现在,当我保存和加载网页,我仍然看到所有的产品上市,而不是4我应该看到的。
从我的理解中,我正在计数数组中的产品,从0开始循环,循环访问数组,然后递增计数+1。然后我会说,如果循环中的产品位置少于我想要显示的4个项目。
我知道代码可能不是效率最好的方式,或者它有一定的批评。我感谢所有的帮助,但我只需要弄清楚为什么我不能得到这个工作。
任何帮助表示赞赏,不太居高临下。
谢谢你们
这是一个错字。如果更改为:
if($total_products - $position < 4){
请注意,该变种的名称是$total_products
。你使用$total_product
没有's'和结束。
您的真棒!对我来说,所有这些都是对的,对于错误的细节,我感到羞耻。谢谢hek2 – 2013-02-12 21:11:11
不客气。检查@jeroen的答案 – hek2mgl 2013-02-12 21:12:05
这似乎是一个非常复杂的方式来获得最后4个项目。
我会建议使用array_slice
:
$last_four = array_slice($products, 0, -4);
和一个简单的foreach
循环。
不错!这是一个整洁的小动作。但我可以问为什么是-4? – 2013-02-12 22:17:42
@Justin Enayati 4从最后。 +4从一开始就是4。 – jeroen 2013-02-12 22:21:48
错字:$ total_products和$ total_product – 2013-02-12 21:07:21
@Akam哦。我之前没有阅读过您的评论。 – hek2mgl 2013-02-12 21:10:47
谢谢阿卡姆,很好找!非常赞赏 – 2013-02-12 21:12:10