2012-02-24 5 views
0

나는이 배열을 가지고 있습니다. 지난 몇 시간 동안 나는 루프를 돌면서 각 주제에 대해 질문을 정리할 다른 것을 만들려고 노력해왔다.배열을 통해 반복하여 PHP의 다른 배열을 만듭니다.

[23] => Array 
     (
      [right] => A list of station and network addresses with corresponding gateway IP address. 
      [id] => 23 
      [level] => Professional 
      [subject] => Array 
       (
        [0] => Array 
         (
         [tid] => 1 
        ) 

       [1] => Array 
        (
         [tid] => 6 
        ) 

      ) 

     [question] => What is an IP routing table? 
     [answer] => A list of host names and corresponding IP addresses. 
     [correct] => 0 
    ) 

[22] => Array 
    (
     [right] => Session hijacking attack 
     [id] => 22 
     [level] => Professional 
     [subject] => Array 
      (
       [0] => Array 
        (
         [tid] => 1 
        ) 

       [1] => Array 
        (
         [tid] => 6 
        ) 

      ) 

     [question] => How would an IP spoofing attack be best classified? 
     [answer] => Session hijacking attack 
     [correct] => 1 
    ) 

[21] => Array 
    (
     [right] => Repeater 
     [id] => 21 
     [level] => Intermediate 
     [subject] => Array 
      (
       [0] => Array 
        (
         [tid] => 1 
        ) 

       [1] => Array 
        (
         [tid] => 6 
        ) 

      ) 

다음과 같이 만들고 싶습니다.

array ([tid1] => array (
          [0] array ( [question] => something) 
          [1] array ( [question] => somethingelse) 
          ) 
     [tid2] => array (
          [0] array ( [question] => something) 
          [1] array ( [question] => somethingelse) 
          ) 

하지만 저는 할 수 없습니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 데이터가 배열이라고 가정

+0

질문은 최종 배열에서 여러 번 나타납니다 (각 뚜껑 아래에 한 번)? – keithhatfield

+0

예. 그것은 할 것이다. 나는 tid에 의해 질문을 나열하고 싶다. – esafwan

답변

1

$data라고하고 각 질문에 여러 과목을 가질 수 있기 때문에 즉, 각 질문은 최종 배열에 여러 번 나타날 수 있습니다 : 각 질문에 여러 주제를 가지고 나타납니다 때문에

$final = array(); 
foreach($data as $datum){ 
    $subjects = $datum['subject']; 
    foreach($subjects as $subject){ 
     $tid = 'tid' . $subject['tid']; 
     $final[$tid][] = array('question' => $datum['question']); 
    } 
} 
관련 문제