1

次のコードを試しました

<?php

foreach ($_wishlistitemCollection as $_wishlistitem):
    $_product  = $_wishlistitem->getProduct();
    $imgpath   = $this->helper('catalog/image')->init($_product, 'small_image');
    $physpaths = array($imgpath);
endforeach;
?>
<?php

for ($i = 0; $i < 5; $i++) {
    echo $physpaths[$i];
}
?> 

エラーはありませんが、問題は array 内のすべての要素が表示されないこと$physpathsです。

すべての要素が含まれていることを確認する方法を教えてください$physpaths。または、間違いを犯した場所を指摘してください。

4

2 に答える 2

4

とても近い;)

<?php
$physpaths = array();
foreach ($_wishlistitemCollection as $_wishlistitem):
    $_product  = $_wishlistitem->getProduct();
    $imgpath   = $this->helper('catalog/image')->init($_product, 'small_image');
    $physpaths[] = $imgpath;
endforeach;
?>
<?php

for ($i = 0; $i < 5; $i++) {
    echo $physpaths[$i];
}
?> 
于 2012-08-23T14:45:08.440 に答える
1

新しいインデックスの配列に値を追加するには、array_push()または[]:を使用する必要があります。

<?php
foreach(...) :
    .
    .
    .
    // use this
    $physpaths[] = $imgpath;
    // or this
    array_push($physpaths, $imgpath);
    // NOT BOTH
endforeach;

次に、各配列インデックスをループして使用する代わりに、次をecho使用しますvar_dump()

echo "<pre>";
var_dump($physpaths);
echo "</pre>";

ヒント:$physpathsの前に配列として初期化する必要がありますforeach

$physpaths = array();

foreach(...):
    .
    .
    .
endforeach;
于 2012-08-23T14:45:01.967 に答える