1

ここで完全なノブ。次のような配列があります。

Array
(
    [15] => Array
      (
        [0] => Array
            (
                [id] => 5216
                [name] => Grow your own Irish Shamrock gifts set
                [ordered] => 473
                [image] => FunShamrockPot.jpg
            )

        [1] => Array
            (
                [id] => 5217
                [name] => Irish Shamrock Seeds
                [ordered] => 357
                [image] => FunShamrockSeed.jpg
            )

        [2] => Array
            (
                [id] => 5759
                [name] => Ireland Fleece with Shamrock Badge
                [ordered] => 1
                [image] => IrelandFleeceShamrocks.jpg
            )

    )

    [31] => Array
      (
        [0] => Array
            (
                [id] => 5081
                [name] => Tartan Guinness Flat Cap
                [ordered] => 356
                [image] => GuinnessTartanFlatCap.jpg
            )

        [1] => Array
            (
                [id] => 4894
                [name] => Black signature emblem Guinness baseball hat
                [ordered] => 176
                [image] => GuinnessSigBBHat.jpg
            )

配列は $products と呼ばれ、各上位配列の最初の 5 つの配列を出力しようとしています (それが理にかなっている場合)。つまり、array[15]<- 15 未満の最初の 5 つの配列、array[31] <-- ここに最初の 5 つの配列。

私が試しているコードは次のとおりです。

foreach($products as $key=>$value) {
    array_slice($value, 0, 5);
    foreach($value as $product) {
        echo $product['name'] . '<br/>';
    }
    echo '<br/>';
}

array_slice が機能しない理由がわかりません。何が間違っているのでしょうか?

4

2 に答える 2

2

問題はarray_slice、入力配列を変更しないことです。戻り値が必要です。

foreach($products as $key=>$value) {
    $sliced = array_slice($value, 0, 5);
    foreach($sliced as $product) {
        echo $product['name'] . '<br/>';
    }
    echo '<br/>';
}
于 2012-04-20T16:10:54.060 に答える
0
foreach($products as $key=>$value) {
    $i = 0;
    foreach($value as $product) {
        if($i <5) {
        echo $product['name'] . '<br/>';
        $i++;
        } else {
        break;
        }
    }
    echo '<br/>';
}

array_sliceが機能しなかった理由を編集して答えてください

あなたがする必要があるでしょう

$newarray = array_slice($value, 0, 5);
    foreach($newarray as $product) {
    echo $product['name'] . '<br/>';
}
于 2012-04-20T16:08:01.290 に答える