0

次のようなjson配列があります。

 Array ( 
[0] => Array
    (
        [k1] => aaa
        [k2] => aaa
    [kTypes] => Array
            (
                [ktype1] => Array
                    (
                        [desc] => asd
                    )

                [ktype2] => Array
                    (
                        [desc] => asd
                    )

            )

    )

そして、ktypes内のdesc値を取得しようとしましたが、これを試しました:

$items = $myArray;
// echo "<pre>";
// print_r($items);
// echo "</pre>";

echo '<table>';
echo '<tr><th>k1</th><th>k2</th><th>ktype1</th><th>ktype2</th></tr>';
foreach($items as $item)
{
echo "<tr><td>$item[k1]</td><td>$item[k2]</td><td>$item[kTypes][kType1][desc]</td><td>$item[kTypes][kType2][desc]</td>";
}
echo '</table>';   

これは最初の両方の列では正常に機能しますが、ktype の列では機能しません。そこに:

echo is "Array[kType2][desc]" 

そこで、ネストされたループを試しましたが、これもうまくいきませんでした。

誰かが私を正しい軌道に乗せることができますか?

4

2 に答える 2

0

あなたの特定の作品のためにこれを試してみてください:

echo "<tr>";
foreach ($items as $field => $value) {
     if($field =='ktype'} {
           foreach($items['ktype'] as $ktype) {
                 foreach($ktype as $k) {
                      echo "<td>{$k}</td>";
                 }
           }
     } else {
          echo "<td>{$value}</td>";
     }
}
echo "</tr>";

ただし、再帰的な部分を実行して、配列のできるだけ深いところまで移動できるようにします。

于 2013-11-03T16:17:00.693 に答える