Я хочу взять все значения id в формате json.
{
"1": {
"name": "test",
"followup": {
"1": {
"id": "98",
"followup": {
"1": {
"id": "93",
"followup": {
"1": {
"id": "174"
},
}
}
}
}
}
}
}
Я могу добиться этого, используя вложенный foreach. Но теперь ключ «отслеживания» присутствует в 3, но он может быть 6,7, поэтому мы не можем добавить 6,7 foreach.
вам нужно пройти через него, если вы хотите получить доступ к этим ключам. Я думаю, вам стоит попытаться упростить свой json-объект, чтобы он не был таким вложенным






Вы можете использовать для этого array_walk_recursive(), например (ДЕМО):
$ids = array();
$data = json_decode($str, true);
array_walk_recursive($data, function($v, $k) use (&$ids) {
if ($k === 'id') {
$ids[] = $v;
}
});
var_dump($ids);
Это в основном просматривает каждый индекс 1 за раз и сопоставляет ключи с ключом id, и, если он совпадает, фиксирует значение.
Вам нужен следующий идентификатор? каким должен быть желаемый результат вашего примера?