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]),那么它会像我想要的那样反转整个数组。

我想不出它不会反转初始数组的原因,以及为什么在传递特定键时它会反转整个数组,而不是那个子数组。为什么会这样做?

编辑:我走开回来,看了看,意识到主数组有一个元素,就是我在上面发布的数组。只是一个很好的 ID-10-T 错误。

4

1 回答 1

1

但是,它返回一个未更改的数组。

它应该可以正常工作

现在,如果我这样做array_reverse($arr[0]),那么它会像我想要的那样反转整个数组。

您确定您的阵列中没有额外的级别吗?我很确定你有一个额外的水平!

于 2012-04-05T17:06:20.430 回答