У меня есть этот массив:
$json = json_decode(' {"entries":[ {"id": "29","name":"John", "age":"36"}, {"id": "30","name":"Jack", "age":"23"} ]} ');
и я ищу PHP для каждого цикла, который будет получать имена ключей под entries
, то есть:
id name age
Как я могу это сделать?
Попробуй
foreach($json->entries as $row) { foreach($row as $key => $val) { echo $key . ': ' . $val; echo '<br>'; } }
В ключе $ вы получите имена ключей, а в val вы получите значения
Вы могли бы сделать что-то вроде этого:
foreach($json->entries as $record){ echo $record->id; echo $record->name; echo $record->age; }
Надеюсь это поможет!
Вы можете попробовать получить свойства объекта, используя get_object_vars
:
$keys = array(); foreach($json->entries as $entry) $keys += array_keys(get_object_vars($entry)); print_r($keys);
foreach($json->entries[0] AS $key => $name) { echo $key; }
Я не был удовлетворен другими ответами, поэтому добавляю свои собственные. Я считаю, что наиболее общий подход:
$array = get_object_vars($json->entries[0]); foreach($array as $key => $value) { echo $key . "<br>"; }
где я использовал entries[0]
потому что вы предполагаете, что все элементы массива entries
имеют одинаковые ключи.
Взгляните на официальную документацию по key
слову : http://php.net/manual/en/function.key.php