我有以下JSON格式:
{
"S01": ["001.cbf", "002.cbf", "003.cbf", "004.cbf", "005.cbf", "006.cbf", "007.cbf", "008.cbf", "009.cbf"],
"S02": ["001.sda", "002.sda", "003.sda"],
"S03": ["001.klm", "002.klm"]
}
我尝试使用这段代码:
$json = json_decode('{"S01":["001.cbf","002.cbf","003.cbf","004.cbf","005.cbf","006.cbf","007.cbf","008.cbf","009.cbf"],"S02":["001.sda","002.sda","003.sda"],"S03":["001.klm","002.klm"]}');
foreach($json as $key => $val) {
if ($key) { echo 'KEY IS: '.$key; };
if ($val) { echo 'VALUE IS: '.$value; };
echo '<br>';
}
但是我得到了空结果...我需要获得如下输出:
KEY IS: S01
VALUE IS: 001.cbf
VALUE IS: 002.cbf
VALUE IS: 003.cbf
VALUE IS: 004.cbf
VALUE IS: 005.cbf
VALUE IS: 006.cbf
VALUE IS: 007.cbf
VALUE IS: 008.cbf
VALUE IS: 009.cbf
KEY IS: S02
VALUE IS: 001.sda
VALUE IS: 002.sda
VALUE IS: 003.sda
KEY IS: S03
VALUE IS: 001.klm
VALUE IS: 002.klm
我需要这个,以便使用值和键名生成ul和li元素... 这是以JSON格式存储在mysql数据库中的内容,并且被读取到需要解析该JSON的PHP脚本中,以便我可以使用输出创建ul和li元素。
我尝试使用foreach,但我得到了空结果? 我知道当我得到所需的值时,我需要使用
explode(',',$ value)
来分解字符串,但我无法按照PHP所需的方式读取$value和$key。
json_decode
输出元素为对象,如果您想要一个关联数组来进行循环,请使用json_decode($string, true)
。 - Kaddath$val
是一个数组(查看 JSON 的结构)。你还需要一个内部循环,像这样foreach ($val as $item){ // 你的代码}
。 - YvesLeBorg