#php #arrays #foreach
#php #массивы #foreach
Вопрос:
У меня есть файл JSON, структура которого выглядит следующим образом (очень упрощенный):
[
{
"customerId": "M12345",
"houses": [
{
"id": "OBJ12345_1731321200",
"status": {
"id": "4",
"name": "Sold"
},
{
"id": "OBJ12345_1732393235",
"status": {
"id": "4",
"name": "Såld"
}
],
"plots": [
{
"id": "OBJ12345_1771637082",
"status": {
"id": "4",
"name": "Sold"
}
],
"projects": [],
"farms": [],
"commercialPropertys": [],
"condominiums": [],
"foreignProperties": [],
"premises": []
}
]
Я сделал это, чтобы получить массив всех объектов, но понятия не имею, как сохранить ключи «дома» или «участки»?
// Create array of all objects
$AllEstatesList = array();
foreach ($GetEstateList[0] as $GetEstateType) {
foreach ($GetEstateType as $GetEstate) {
if ($GetEstate["id"] != null) {
$AllEstatesList[] = $GetEstate;
}
}
}
Мне нужно выяснить, как создать массив, который хранит ключи от родительского элемента и включает их в новый массив…
Результат, который я ищу, таков:
Array
(
[0] => Array
(
[type] => houses
[id] => OBJ12345_1731321200
[status] => Array
(
[id] => 4
[name] => Såld
)
)
[1] => Array
(
[type] => houses
[id] => OBJ12345_1732393235
[status] => Array
(
[id] => 4
[name] => Såld
)
)
[2] => Array
(
[type] => plots
[id] => OBJ15053_1771637082
[status] => Array
(
[id] => 4
[name] => Såld
)
)
)
пожалуйста, помогите! 🙂
Комментарии:
1. Пожалуйста, приведите пример структуры данных, которую вы пытаетесь создать.
2. Обновил мой вопрос примером структуры данных, которую я пытаюсь создать
Ответ №1:
Вы хотите сохранить ключ каждого объекта массива при создании первого цикла foreach. Синтаксис выглядит следующим образом:
foreach ($arr as $key => $value) {
echo "{$key} => {$value} ";
print_r($arr);
}
Итак, для вашего примера это будет что-то вроде этого:
// Create array of all objects
$AllEstatesList = array();
foreach ($GetEstateList[0] as $EstateType => $GetEstateType) {
foreach ($GetEstateType as $GetEstate) {
if ($GetEstate["id"] != null) {
$GetEstate["type"] = $EstateType;
$AllEstatesList[] = $GetEstate;
}
}
}
Комментарии:
1. Спасибо, может сработать, но результат не тот, который я ищу, см. Мой новый «ответ», как он должен выглядеть
2. Понял, я обновил свой ответ, чтобы получить желаемый результат. Вероятно, вам следует удалить свой ответ и обновить свой вопрос тем, что вы ищете, просто чтобы следовать правилам переполнения стека.
3. Отлично! Большое вам спасибо! (Я обновил свой вопрос, как вы указали)