Есть такой массив
Array
(
[0] => Площадь:
[1] => 3028 м2
[2] => Тип дома:
[3] => Каменный
[4] => Вид дома:
[5] => Не указан
[6] => Количество этажей:
[7] => 5
[8] => Подвал:
[9] => На весь дом
[10] => Гараж:
[11] => Не указано
[12] => Крыша:
[13] => 1-скатная (плоская)
[14] => Стиль:
[15] => Современные
[16] => Хиты продаж:
[17] => Не указано
[18] => Год:
[19] => После 2015
[20] => Цена:
[21] => не указано
)
По логике понятно, что каждый первый элемент это название, каждый второй - это значение.
Как это массив превратить в вид:
Array
(
Площадь => 3028 м2,
Тип дома => Каменный
...
итд
)
Можно выполнить один проход циклом for:
$res = [];
for ($i = 0; $i < count($list); $i+=2) {
$res[$list[$i]] = $list[$i+1];
}
Можно предварительно разбить исходный массив на чанки размером 2:
$chunks = array_chunk($list, 2);
$res = [];
foreach ($chunks as list($k, $v)) {
$res[$k] = $v;
}
array_combine:
$keys = array_filter($list, function($i){return ~$i&1;}, ARRAY_FILTER_USE_KEY);
$values = array_filter($list, function($i){return $i&1;}, ARRAY_FILTER_USE_KEY);
$res = array_combine($keys, $values);
array_reduce:
$res = array_reduce($list, function($c, $a) {
if (is_null($c['key'])) $c['key'] = $a;
else {
$c['res'][$c['key']] = $a;
$c['key'] = null;
}
return $c;
}, ['key' => null, 'res' => []])['res'];
По условию, исходный массив имеет чётное количество элементов, если это не факт - желательно проверять наличие последнего чётного элемента
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть скрипт регистрации юзеров, и при успешной реге нужно слать письмоИспользую smtp Яндекса, но сама отправка и подключение к смтп серверу...
При выводе формы элемент $checkBox отображается дважды: до группы и в нейКак это исправить?