Перебор массива объектов в php
уже голову поломал, не могу привести к нужному виду. Есть массив объектов
$parameters = [
{name: "immovable_type", value: "apartment"}
{name: "count_room", value: "1"},
{name: "count_room", value: "2"},
{name: "count_room", value: "3"}
{name: "cost_from", value: ""},
{name: "cost_to", value: ""},
{name: "city", value: "637640"}
];
мне нужно получить массив вида:
$parameters = [
"immovable_type" => "apartment",
"count_room" => "1,2,3"},
"cost_from" => "",
"cost_to" => "",
"city" => "637640"
];
гуру программирование, помогите)
Ответы (1 шт):
Автор решения: Yaroslav Molchan
→ Ссылка
По идее обычного цикла должно быть достаточно и чуть проверок:
$parameters = [
['name' => "immovable_type", 'value' => "apartment"],
['name' => "count_room", 'value' => "1"],
['name' => "count_room", 'value' => "2"],
['name' => "count_room", 'value' => "3"],
['name' => "cost_from", 'value' => ""],
['name' => "cost_to", 'value' => ""],
['name' => "city", 'value' => "637640"]
];
$result = [];
foreach ($parameters as $parameter) {
if (!isset($result[$parameter['name']])) {
$result[$parameter['name']] = $parameter['value'];
} else {
$result[$parameter['name']] .= ',' . $parameter['value'];
}
}
var_dump($result);
Результат:
array(5) {
["immovable_type"]=>
string(9) "apartment"
["count_room"]=>
string(5) "1,2,3"
["cost_from"]=>
string(0) ""
["cost_to"]=>
string(0) ""
["city"]=>
string(6) "637640"
}