我有一个json数组(只有一行有很多属性),如下所示:
$row = '[{"ID":"0","Name":"user","Option":"yes"}]';
我可以通过以下方式访问每个值:
$row->ID; $row->Name; ...
我的问题是如何使用循环来查找所有属性及其值而不使用:
$ obj = json_decode($ row);
答案 0 :(得分:2)
json_decode的第二个参数指定如果你给它true
,它将返回一个数组而不是一个对象。
所以,如果我理解你的问题,这应该是你正在寻找的:
$row = '[{"ID":"0","Name":"user","Option":"yes"}]';
foreach (json_decode($row, true) as $key => $value) {
echo $key . ' = ' . $value . PHP_EOL;
}
希望这会有所帮助:)
答案 1 :(得分:1)
除非你不仅仅使用json_decode
的原因,否则你的JSON
就像你的$row = '[{"ID":"0","Name":"user","Option":"yes"}]';
$row = substr($row, 2, strlen($row) - 4); // Removes [{ and }]
$items = explode(',', $row); // Explodes into parts
$final = array();
foreach($items as $item) {
$parts = explode(':', $item); // Key/value
$key = substr($parts[0], 1, strlen($parts[0]) - 2); // Remove quotes
$value = substr($parts[1], 1, strlen($parts[1]) - 2); // Remove quotes
$final[$key] = $value;
}
var_dump($final);
一样复杂(只是阵列中的一个项目),你可以它除了:
{{1}}