我有一个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]"
所以我尝试了一个嵌套循环,但这也不起作用。
任何人都可以帮助我走上正轨吗?
答案 0 :(得分:0)
要在字符串中插入多维数组访问,必须使用带有花括号的“复杂”格式。
echo "<tr><td>$item[k1]</td><td>$item[k2]</td><td>{$item['kTypes']['kType1']['desc']}</td><td>{$item['kTypes']['kType2']['desc']}</td>";
答案 1 :(得分:0)
尝试使用此foreach作为您的具体作品:
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>";
但是,我会做一个递归的部分,因此它可以尽可能深入到数组中。