#php #arrays #key
#php #массивы #Клавиша
Вопрос:
как преобразовать первое значение в качестве ключа массива и php. Привет, я работаю над некоторыми операциями с массивом. ниже приведен массив, который у меня есть:
$data= array
(
array('city', 'california','big city'),
array('address', 'this is','address', 'zzz'),
array('something', 'item 3','details 3'),
);
Array
(
[0] => Array
(
[0] => city
[1] => california
[2] => big city
)
[1] => Array
(
[0] => address
[1] => this is
[2] => address
[3] => zzz
[2] => Array
(
[0] => something
[1] => item 3
[2] => details 3
)
..........
)
я ожидаю этого результата:
Array
(
[city] => Array
(
[0] => city
[1] => california
[2] => big city
)
[address] => Array
(
[0] => address
[1] => this is
[2] => address
[3] => zzz
[something] => Array
(
[0] => something
[1] => item 3
[2] => details 3
)
..............
)
упомянутый выше результат.Я уже пробовал использовать функции массива array_keys и array_values, но это не сработает. протяните мне руку помощи
Комментарии:
1. можем ли мы посмотреть, как вы создаете массив для начала?
2. Как вы сгенерировали этот массив?
3. $ddd = array ( массив (‘city’, ‘california’, ‘big city’), array(‘address’, ‘this is’, ‘address’, ‘zzz’), array(‘something’, ‘item 3′,’details 3’), );
4. подождите .. вы вручную создаете массив? Почему бы вам просто не сделать
'city' => array('other', 'values')
?5. если полученный массив похож на этот, как мы можем изменить
Ответ №1:
Попробуйте с forEach
$data= array
(
array('city', 'california','big city'),
array('address', 'this is','address', 'zzz'),
array('something', 'item 3','details 3'),
);
$res=[];
foreach($data as $val){
$res[$val[0]] = $val;
}
print_r($res);
Комментарии:
1. несмотря на правильность, весь код вверху написан вручную.. Я бы предпочел предложить начать правильное создание массива.. (но я, возможно, педантичен)
2. можем ли мы сделать это без цикла.
3. цикл @user11246426 прост и эффективен. Теперь мы можем с
Array#reduce
добиться того же результата. Но в этом случае это не обязательно