所以,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错误。
答案 0 :(得分:1)
然而,它返回一个未改变的数组。
现在,如果我执行
array_reverse($arr[0])
,那么它会像我想要的那样反转整个数组。
你确定阵列中没有额外的等级吗?我很确定你有额外的水平!