我有一個JSON數組(只有一行有許多屬性)這樣的屬性和值:PHP的 - 查找一個JSON格式
$row = '[{"ID":"0","Name":"user","Option":"yes"}]';
我可以接觸到的每一個值有:
$row->ID; $row->Name; ...
我的問題是如何使用一個循環來發現的所有屬性和它們的值,而無需使用:
$ OBJ = json_decode($行);
我有一個JSON數組(只有一行有許多屬性)這樣的屬性和值:PHP的 - 查找一個JSON格式
$row = '[{"ID":"0","Name":"user","Option":"yes"}]';
我可以接觸到的每一個值有:
$row->ID; $row->Name; ...
我的問題是如何使用一個循環來發現的所有屬性和它們的值,而無需使用:
$ OBJ = json_decode($行);
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
......如果是因爲您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_decode($ row,true)[0]'(僅限於此語法中的PHP 5.4) – Harold