У меня есть объект, который содержит ключи со значениями, которые являются объектами, а внутри этих объектов есть другие объекты в качестве значения для одного из ключей. Мне удалось получить определенное значение из глубокого вложенного объекта, который мне нужен, выполнив 4 цикла, но мне было интересно, есть ли лучший способ сделать это. Вот объект у меня есть:Зацикливание объекта внутри другого объекта
{
record1: {
key1: value1,
key2: value2,
key3: {
key_x1: value_x1,
key_x2: value_x2,
key_x3: value_x3
}
}
record2: {
key1: value1,
key2: value2,
key3: {
key_x1: value_x1,
key_x2: value_x2,
key_x3: value_x3
}
}
}
Таким образом, для каждой записи (record1
и record2
и т.д.) Мне нужно, чтобы вытащить значение из key_x1
и хранить его в массив. Любые идеи о том, как это сделать без 4 циклов foreach?
EDIT: Вот что у меня есть, который работает, только выглядит некрасиво:
$mainObject
$a = [];
$dateArray = [];
foreach ($mainObject as $individualOb) {
$dates = $individualOb->getDate();
$a[] = $dates;
}
if (empty($a)) {
return true;
} else {
foreach ($a as $date) {
foreach ($date as $key => $value) {
if ($key == 'date') {
$dateArray[] = $value;
}
}
}
foreach ($dateArray as $value) {
if(strtotime($value) < strtotime('-1 year')) {
return true;
}
}
}
Пожалуйста показать некоторые усилия, как вы пытались решить эту проблему, где вы пошли не так, и какие ошибки и результаты, которые вы получили. – alexi2
это json string? – RomanPerekhrest
Возможный дубликат [Как преобразовать объект в массив?] (Http://stackoverflow.com/questions/2476876/how-do-i-convert-an-object-to-an-array) – user2182349