1

したがって、array_reverse()配列を取得し、そのコピーを要素とともに逆の順序で返すことになっています。これは、今日まで常に忠実に機能しています。私は配列の配列を持っていて、それらを逆の順序で取得する必要があるので、array_reverseが必要なことを正確に実行すると思いましたが、奇妙な動作をしているようで、理由がわかりません。

私の最初の配列(はい、私はいくつかのHTML解析を行っています):

Array(
    0 => Array(
        0 => '<blockquote',
        1 => int 232
    ),
    1 => Array(
        0 => '<blockquote',
        1 => int 593
    ),
    2 => Array(
        0 => '<blockquote',
        1 => int 938
    ),
    3 => Array(
        0 => '</blockquote',
        1 => int 2627
    ),
    4 => Array(
        0 => '</blockquote',
        1 => int 2758
    ),
    5 => Array(
        0 => '</blockquote',
        1 => int 2794
    ),
)

その上で実行array_reverse($arr)すると、返される配列は次のようになります。

Array (
    0 => Array(
        0 => '</blockquote',
        1 => int 2794
    ),
    1 => Array(
        0 => '</blockquote',
        1 => int 2758
    ),
    2 => Array(
        0 => '</blockquote',
        1 => int 2627
    ),
    3 => Array(
        0 => '<blockquote',
        1 => int 938
    ),
    4 => Array(
        0 => '<blockquote',
        1 => int 593
    ),
    5 => Array(
        0 => '<blockquote',
        1 => int 232
    ),
)

ただし、変更されていない配列を返します。さて、array_reverse($arr[0])そうすると、配列全体が希望どおりに反転します。

最初の配列を逆にしない理由は考えられません。また、特定のキーを渡すときに、1つのサブ配列ではなく、配列全体を逆にする理由も考えられません。なぜこれを行うのでしょうか?

編集:私は立ち去って戻ってきて、それを見て、メインの配列が上に投稿した配列である単一の要素を持っていることに気づきました。古き良きID-10-Tエラー。

4

1 に答える 1

1

ただし、変更されていない配列を返します。

それはうまくいくはずです

さて、array_reverse($arr[0])そうすると、配列全体が希望どおりに反転します。

配列に余分なレベルがないことを確認しますか?私はあなたが余分なレベルを持っているとかなり確信しています!

于 2012-04-05T17:06:20.430 に答える