Foreach循环没有比较

时间:2013-02-12 21:06:28

标签: php arrays loops foreach

我有点像编程菜鸟,我遇到了一个问题,试图只回显我的数组中的几个项而不是数组中的所有项。

所以我拥有的是包含我的数组$产品的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个项目。

我知道代码可能不是效率明智的最佳方式,或者它有某些批评。我感谢所有的帮助,但我只需要弄清楚为什么我不能让它工作。

任何帮助都表示赞赏,越少越好,越好。

谢谢你们

2 个答案:

答案 0 :(得分:3)

这似乎是获取最后4项的非常复杂的方法。

我建议使用array_slice

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

和一个简单的foreach循环。

答案 1 :(得分:2)

这是一个错字。将if更改为:

if($total_products - $position < 4){

请注意,var的名称为$total_products。您正在使用$total_product而没有's'和结尾。