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 回答
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>;
    }
}

我不确定为什么你有两次相同的值(一次在整数索引中,一次在字符串索引中)。在输出任何内容之前,您应该选择两者之一并保持一致。

干杯。

于 2013-11-15T08:39:12.003 回答