2012-04-22 3 views
0

안녕하세요. 제 2D 배열 형식입니다. 나는 첫 번째 배열을 제거하고 싶습니다.PHP에서 2D 배열을 이동하는 방법

Array 
(
    [0] => Array 
     (
      [0] => Array 
       (
        [type] => section-open 
       ) 

     ) 

    [1] => Array 
     (
      [0] => Array 
       (
        [type] => section-close 
       ) 

     ) 

) 

나는 ...

+0

사용 루프 :

http://codepad.org/H7iaTI1E

그 기능 : 여기

는 실시 예의인가? –

답변

2

당신은 아마 진짜 2D 변화 내가 수행하는 기능을하게 원하기 때문에, 그 배열의 첫 번째 수준을 제거하지만, 두 번째 수준의 모든 항목을 유지. 응

/** 
* Removes first level in an array, returning the 2nd level elements as an array 
* @param array Array to process 
* @return 2nd level items from the given array 
*/ 
function array2dshift(array $array) { 
    $res = array(); 

    foreach($array as $lvl1) { 
     foreach($lvl1 as $item) { 
      $res[] = $item; 
     } 
    } 

    return $res; 
} 
+0

예.이게 내가 원하는 ... – Mifas

+0

@ sg3s 이것은 재귀 함수가 아닙니다. – Ikke

+0

@ 아이크 당신 말이 맞아서 바꿨습니다. – sg3s

6

업데이트 모든 내부 배열을 제거하고이

Array 
(
    [0] => Array 
     (
      [type] => section-open 
     ) 

    [1] => Array 
     (
      [type] => section-close 
     ) 

) 
나는 그것이 작동하지 않습니다 array_shift 기능을 시도

처럼 돌아가려면이는 예를 기반으로했다 사용자는 제공했지만 하나 이상의 요소가있는 배열에서 작동 할 것으로 예상했습니다.

array_shift()은 배열의 첫 번째 요소를 제거하지만 원하는 것은 아닙니다.

직접 제작해야합니다. 같은

뭔가 :

$result = array(); 
foreach($my_array as $element) 
{ 
    $result[]=$element[0]; 
} 
+0

@ 두 번째 레벨에 두 개 이상의 항목이있는 경우 코드가 날아갑니다. – sg3s

+0

@lkke 정확하지 않습니다. – Mifas

+0

이것은 @mifas가 준 예제를 기반으로합니다. – Ikke

관련 문제