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]表示されていません。「foo1」または「foo2」を表示するはずで、代わりに「Array」を出力するだけです。私は確かにここで何か間違ったことをしていますが、何がわからないのですか...

ご協力いただきありがとうございます

4

2 に答える 2

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>";
    }

お役に立てれば

于 2013-11-15T08:54:17.190 に答える