2013-11-15 3 views
0

그 모양 groupeditems라는 배열이 있습니다다차원 배열

array(2) { 
    ["foo1”]=> 
    array(4) { 
    [0]=> 
    array(20) { 
     [0]=> 
     string(3) "658" 
     ["id"]=> 
     string(3) "658" 
     [1]=> 
     string(12) "Flying Foxes" 
     ["song_name"]=> 
     string(12) "Flying Foxes" 
     [2]=> 
     string(4) "Moby" 
     ["song_artist"]=> 
     string(4) "Moby" 
    } 
    [1]=> 
    array(20) { 
     [0]=> 
     string(4) "1232" 
     ["id"]=> 
     string(4) "1232" 
     [1]=> 
     string(13) "Memory Gospel" 
     ["song_name"]=> 
     string(13) "Memory Gospel" 
     [2]=> 
     string(4) "Moby" 
     ["song_artist"]=> 
     string(4) "Moby" 
      } 
    } 
    [“foo2”]=> 
    array(3) { 
    [0]=> 
    array(20) { 
     [0]=> 
     string(4) "2047" 
     ["id"]=> 
     string(4) "2047" 
     [1]=> 
     string(9) "Yesterday" 
     ["song_name"]=> 
     string(9) "Yesterday" 
     [2]=> 
     string(11) "The Beatles" 
     ["song_artist"]=> 
     string(11) "The Beatles" 
      } 
    } 
} 

그리고 그 모양 때문에 내가 HTML 테이블에이 배열을 에코 싶습니다 :

<h2> foo1 <h2> 

     flying foxes   moby     
     memory gospel   moby      

<h2> foo2 <h2> 

     yesterday   the beatles   
을 나는 다음과 같은 PHP를 사용하고

:

foreach ($groupedItems as $mks){ 
    echo "<table>"; 
    echo '<h2>'; 
    echo $mks[0]; 
    echo '</h2>'; 
     foreach ($mks as $qid=>$rate){ 
      echo "<tr><td>".$rate[1]."</td><td>".$rate[2]."</td></tr>"; 
      } 
    echo "</table>"; 
    } 

그러나, $mks[0]이 ㄱ되지 않는다 eing이 표시되면 "foo1"또는 "foo2"가 표시되고 대신 "Array"가 인쇄됩니다. 다음 코드를 사용해보십시오 나는 확실히 여기에서 뭔가 잘못하고있는 중이 야하지만 난 당신의 도움을 ...

답변

0

감사를 어떻게 알아낼 수 없습니다 : 잘 모르겠어요

foreach ($groupitems as $key => $foo) { 
    echo '<h2>' . $key . '</h2>' . '<br>'; 
    foreach ($foo as $key => $value) { 
     echo $value['id'] . $value['song_name'] . $value['song_artist']; 
     echo <br>; 
    } 
} 

왜 당신을 생각 동일한 값을 두 번 갖습니다 (정수 인덱스에서 한 번, 문자열 인덱스에서 한 번). 아무것도 출력하기 전에 두 가지 중 하나를 선택하고 일관성을 유지해야합니다.

건배.

+0

완벽한! 조언 해줘서 고마워. 그럴거야. 건배 – anto0522

0

당신은 중복 부분이 너무 배열이 같은 보일 것

[0]=>   # this is redundant, remove 
    string(3) "658" # this is redundant, remove 
    ["id"]=> 
    string(3) "658" 

을 즉 제거, 배열을 수정하는 경우 :

Array 
(
    [foo1] => Array 
     (
      [id] => 658 
      [song_name] => flying Floxes 
      [song_artist] => moby 
     ) 

    [foo2] => Array 
     (
      [id] => 68 
      [song_name] => flying 
      [song_artist] => mo 
     ) 

) 

을 다음과 같이하십시오

foreach ($a as $key=>$mks){ 
    echo "<table>"; 
    echo '<h2>'; 
    echo $key; 
    echo '</h2>'; 
     foreach ($mks as $qid=>$rate){ 
      echo "<tr><td>".$qid."</td><td>".$rate."</td></tr>"; 
      } 
    echo "</table>"; 
    } 

희망이 도움이