Php-查找Json格式的属性及其值
我有一个json数组(只有一行有许多属性),如下所示:Php-查找Json格式的属性及其值,php,json,Php,Json,我有一个json数组(只有一行有许多属性),如下所示: $row = '[{"ID":"0","Name":"user","Option":"yes"}]'; 我可以通过以下方式访问每个值: $row->ID; $row->Name; ... 我的问题是,如何使用循环查找所有属性及其值,而不使用: $obj=json_decode($row) json_decode的第二个参数指定,如果您给它true,它将返回一个数组而不是一个对象 所以,如果我正确理解你的问题,
$row = '[{"ID":"0","Name":"user","Option":"yes"}]';
我可以通过以下方式访问每个值:
$row->ID; $row->Name; ...
我的问题是,如何使用循环查找所有属性及其值,而不使用:
$obj=json_decode($row)
json_decode的第二个参数指定,如果您给它
true
,它将返回一个数组而不是一个对象
所以,如果我正确理解你的问题,这应该是你想要的:
$row = '[{"ID":"0","Name":"user","Option":"yes"}]';
foreach (json_decode($row, true) as $key => $value) {
echo $key . ' = ' . $value . PHP_EOL;
}
希望这有帮助:)json_decode的第二个参数指定,如果您给它
true
,它将返回一个数组而不是一个对象
所以,如果我正确理解你的问题,这应该是你想要的:
$row = '[{"ID":"0","Name":"user","Option":"yes"}]';
foreach (json_decode($row, true) as $key => $value) {
echo $key . ' = ' . $value . PHP_EOL;
}
希望这有帮助:)json_decode的第二个参数指定,如果您给它
true
,它将返回一个数组而不是一个对象
所以,如果我正确理解你的问题,这应该是你想要的:
$row = '[{"ID":"0","Name":"user","Option":"yes"}]';
foreach (json_decode($row, true) as $key => $value) {
echo $key . ' = ' . $value . PHP_EOL;
}
希望这有帮助:)json_decode的第二个参数指定,如果您给它
true
,它将返回一个数组而不是一个对象
所以,如果我正确理解你的问题,这应该是你想要的:
$row = '[{"ID":"0","Name":"user","Option":"yes"}]';
foreach (json_decode($row, true) as $key => $value) {
echo $key . ' = ' . $value . PHP_EOL;
}
希望这有帮助:)排除了为什么不使用
json\u解码的原因。。。如果这与您的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);
如果不考虑为什么不使用json\u 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);
如果不考虑为什么不使用json\u 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);
如果不考虑为什么不使用json\u 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);
哦,对不起。这是因为JSON被包装在一个数组中。重复这个:json\u decode($row,true)[0]
(仅在这个语法中使用PHP5.4)哦,对不起。这是因为JSON被包装在一个数组中。重复这个:json\u decode($row,true)[0]
(仅在这个语法中使用PHP5.4)哦,对不起。这是因为JSON被包装在一个数组中。重复这个:json\u decode($row,true)[0]
(仅在这个语法中使用PHP5.4)哦,对不起。这是因为JSON被包装在一个数组中。迭代如下:json\u decode($row,true)[0]
(仅此语法中的PHP5.4)