2012-09-22 6 views
-1

얘들이 같은 배열 먹으 렴있어 :PHP 연속 foreach는

array(3) { 
    [2]=> 
    array(1) { 
     ["name"]=> 
     array(2) { 
     [0]=> 
     string(13) "row1" 
     [1]=> 
     string(13) "row3" 
     } 
    } 
    [5]=> 
    array(1) { 
     ["name"]=> 
     array(2) { 
     [0]=> 
     string(15) "row1" 
     [1]=> 
     string(15) "row3" 
     } 
    } 
    [3]=> 
    array(1) { 
     ["name"]=> 
     array(2) { 
     [0]=> 
     string(13) "row1" 
     [1]=> 
     string(13) "row3" 
     } 
    } 

은 무엇 내가 달성하고자하는 foreach 루프 1 (row3)를 통해 0 요소 (ROW1) 다음 루프를 만들어 갈 것입니다 이렇게. 그렇게 할 수있는 방법이 있습니까?

+0

이것은 쿼리 결과와 비슷합니다. 쿼리가 올바른 형식을 반환하지 않는 이유는 무엇입니까? – JvdBerg

+0

그것의 쿼리, 브라우저 입력 및 사용자가 요소를 올바르게 주문할 수 없습니다. – Anonymous

답변

1

당신은 배열 재 구축을 시도 할 수 있습니다 : 이제 배열에서 같은 하위 요소가 새로운 배열에 함께있는이 시점 알에서

$rows = array(); 
foreach($array as $subarray) 
    foreach($subarray as $key => $value) 
    $rows[$key][] = $value; 

을하고 있습니다 하위 요소를 통해 쉽게 루프 :

foreach($rows as $key => $value) 
    echo 'processing row: ' . $key ' with value ' . $value; 
+0

문제는이 배열이 동적 배열이므로 두 개 이상의 필드가 포함될 수 있으므로 0/1은 잘라내 지 않습니다. – Anonymous

+0

질문에 언급하지 않았습니다. – JvdBerg

+0

나는 새로운 대답을 당신에게 맞게 조정했다 – JvdBerg

0

이 문제에 대한 다른 접근 방식을 찾았습니다. JvdBeg 솔루션은 훌륭하게 작동하지만 비슷한 상황에 처한 사람이 있으면 어떻게했을까요? $ key = key ($ arr); $ keys = array_keys ($ arr);

for ($i=0;$i<sizeof($arr[$key]['index']);$i++) { 
     for($k=0;$k<sizeof($arr);$k++) { 
     $key = $keys[$k]; 
     echo "\n"; 
     } 
    }