2013-02-12 129 views
0

我是一个编程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个项目。

我知道代码可能不是效率最好的方式,或者它有一定的批评。我感谢所有的帮助,但我只需要弄清楚为什么我不能得到这个工作。

任何帮助表示赞赏,不太居高临下。

谢谢你们

+3

错字:$ total_products和$ total_product – 2013-02-12 21:07:21

+0

@Akam哦。我之前没有阅读过您的评论。 – hek2mgl 2013-02-12 21:10:47

+0

谢谢阿卡姆,很好找!非常赞赏 – 2013-02-12 21:12:10

回答

2

这是一个错字。如果更改为:

if($total_products - $position < 4){ 

请注意,该变种的名称是$total_products。你使用$total_product没有's'和结束。

+0

您的真棒!对我来说,所有这些都是对的,对于错误的细节,我感到羞耻。谢谢hek2 – 2013-02-12 21:11:11

+1

不客气。检查@jeroen的答案 – hek2mgl 2013-02-12 21:12:05

3

这似乎是一个非常复杂的方式来获得最后4个项目。

我会建议使用array_slice

$last_four = array_slice($products, 0, -4); 

和一个简单的foreach循环。

+0

不错!这是一个整洁的小动作。但我可以问为什么是-4? – 2013-02-12 22:17:42

+0

@Justin Enayati 4从最后。 +4从一开始就是4。 – jeroen 2013-02-12 22:21:48