0

私はややプログラミング初心者であり、配列内のすべての項目ではなく、配列のいくつかの項目のみをエコーアウトしようとする問題に悩まされていました。

だから私が持っているのは、配列$productsを含む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;

Webページを保存してロードすると、リストされているすべての製品が表示されますが、表示されるはずの4つではありません。

私が理解していることから、私は配列内の製品をカウントし、ループを0から開始し、配列をループしてから+1カウントを増やしています。次に、ループの位置にある製品が、表示したい 4 つのアイテムよりも少ない場合は、それを示しています。

コードが効率的に最善の方法ではない可能性があること、または特定の批評があることを私は知っています。すべての助けに感謝しますが、なぜこれが機能しないのかを理解する必要があります。

どんな助けも大歓迎です。見下すことが少ないほど良いです。

みんなありがとう

4

2 に答える 2

3

最後の 4 つの項目を取得するのは非常に複雑な方法のようです。

使用することをお勧めしarray_sliceます:

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

そして単純なforeachループ。

于 2013-02-12T21:11:02.487 に答える
2

これはタイプミスです。if を次のように変更します。

if($total_products - $position < 4){

var の名前は$total_products. $total_product「s」と末尾なしで使用しています。

于 2013-02-12T21:08:56.690 に答える