所以,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 错误。