2013-02-12 198 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