2012-05-31 1 views
2

나는PHP : 어떻게 하나의 차원으로 다차원 배열을 설정하는 동적

array(6) { 
    [0]=> 
    string(10) "2012-05-23" 
    [1]=> 
    string(10) "2012-05-31" 
    [2]=> 
    string(10) "2012-05-30" 
    [3]=> 
    string(10) "2012-06-07" 
    [4]=> 
    string(10) "2012-06-02" 
    [5]=> 
    string(10) "2012-06-07" 
    } 

에이 배열을 돌려 원하는

array(4) { 
    [0]=> 
    array(2) { 
    [0]=> 
    string(10) "2012-05-23" 
    [1]=> 
    string(10) "2012-05-31" 
    } 
    [1]=> 
    array(2) { 
    [0]=> 
    string(10) "2012-05-30" 
    [1]=> 
    string(10) "2012-06-07" 
    } 
    [2]=> 
    array(2) { 
    [0]=> 
    string(10) "2012-06-02" 
    [1]=> 
    string(10) "2012-06-07" 
    } 
} 

같은 배열을하고 난 동적으로 수행 할 수 있습니다. 여기에 100 차원으로 배열을 가질 수 있습니다. 그래서 루프 : 뭔가해야

답변

4
$final_array =array(); 
foreach ($data as $val) 
{ 
    foreach($val as $val2) 
    { 
     $final_array[] = $val2; 
    } 
} 
+1

배열에 몇 개의 차원이 있더라도 상관없이 작동합니다. – Steven1978

+1

@ Steven1978 : 내게 봐 – DonCallisto

+0

고마워, 잘 작동 –

0

단순 검색에서이 반환은 PHP.net docs

<?php 
/** 
* Flattens an array, or returns FALSE on fail. 
*/ 
function array_flatten($array) { 
    if (!is_array($array)) { 
    return FALSE; 
    } 
    $result = array(); 
    foreach ($array as $key => $value) { 
    if (is_array($value)) { 
     $result = array_merge($result, array_flatten($value)); 
    } 
    else { 
     $result[$key] = $value; 
    } 
    } 
    return $result; 
} 
?> 
0

아마도 당신이 찾고 있습니다.

array walk recursive 함수 입력 배열의 각 요소에 사용자 정의 함수 function을 적용한다. 이 함수는 더 깊은 배열로 반복됩니다. 당신은 "일반 pourpose"솔루션을 원하는 경우에

3
function makeArray($finalArray,$element) { 
foreach ($element as $key => $value){ 
    if(is_array($value)) makeArray($finalArray,$value); 
    else $finalArray[] = $value; 
} 
} 

, 이것은 당신이 당신의 시작으로 빈 배열로 $finalArray$element로, 처음 호출 할 필요가 분명히 하나

입니다 배열

1

사용하여 다음과 같은 코드 :

$it = new RecursiveIteratorIterator(new RecursiveArrayIterator($data)); 

$l = iterator_to_array($it, false); 
당신은 여전히 ​​있도록 재귀 함수에이를 설정 할 수 있습니다
관련 문제