Php-查找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,它将返回一个数组而不是一个对象 所以,如果我正确理解你的问题,

我有一个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"}]';
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)