2012-04-05 2 views
1

그래서 array_reverse()은 배열을 가져와 역순으로 요소를 가진 사본을 반환한다고 가정합니다. 그리고 그것은 항상 저까지 충실히 작동했습니다. 나는 배열 배열을 가지고 있으며, 역순으로 배열을 가져와야하므로 array_reverse가 내가 필요한 것을 정확하게 처리 할 것이라고 가정했는데 이상하게 행동하는 것으로 보이고 그 이유를 알 수 없다.배열의 배열에서 PHP의 array_reverse()를 사용하여 이상한 동작이 발생합니다. 왜?

내 초기 배열 (예, 나는 약간의 HTML 구문 분석을하고 있어요는) :

거기에 array_reverse($arr)를 실행
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 (
    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])을하면, 내가 원하는 것처럼 전체 배열을 뒤집습니다.

초기 배열을 뒤집을 이유가 없다고 생각할 수 있습니다. 왜 특정 키를 전달할 때 하나의 하위 배열이 아닌 전체 배열을 뒤집을 수 있습니다. 왜 이렇게 할거야?

EDIT : 나는 뒤로 물러서서 그것을 보았고 주 배열이 내가 위에 올린 배열이었던 단일 요소를 가지고 있다는 것을 깨달았다. 그냥 좋은 'ID - 10 - T 오류.

+0

동작을 보여주는 예제 테스트 케이스 (예 : 코드 패드)를 만들 수 있습니까? – cmbuckley

+1

나를 위해 작동합니다 : http://codepad.org/68nDM11F –

+1

"예, 나는 약간의 HTML 구문 분석을하고 있습니다." – PeeHaa

답변

1

그러나 변경되지 않은 배열을 반환합니다.

It should just work.

이제 array_reverse($arr[0])을 입력하면 원하는대로 전체 배열을 뒤집습니다.

배열에 별도의 레벨이 설치되어 있지 않습니까? 나는 당신이 여분의 레벨을 가지고 있다고 확신합니다!

+1

예! 단지 그것을 더 가깝게 보았습니다 (잠시 물러났다가 돌아 왔습니다) 그리고 실제로 저는했습니다! 어떻게 보지 못했는지 모르겠다. 나는 바보처럼 느껴진다. – Tarka

+1

걱정하지 마십시오. 그것은 일어납니다 :-) – PeeHaa

관련 문제