Создать ассоциативный массив PHP

D
На сайте с 28.06.2008
Offline
1104
353

Есть три массива, одинаковой длинны, вида:

arrayName() {
[0]=> "Иванов И.В."
[1]=> "Петров П.А."
[2]=> "Сидоров А.К."....
arrayAge() {
[0]=> "25"
[1]=> "42"
[2]=> "54"....
arrayProf() {
[0]=> "менеджер"
[1]=> "директор"
[2]=> "строитель"....

Нужно собрать в ассоциативный массив вида:

arrayFinal() {
array(1){
[name]=> "Иванов И.В."
[age]=> "25"
[prof]=> "менеджер"
}
array(2){
[name]=> "Петров П.А."
[age]=> "42"
[prof]=> "директор"
}
array(3){
[name]=> "Сидоров А.К."
[age]=> "54"
[prof]=> "строитель"
}

....

как это сделать? Что-то не могу загуглить пример....

Z0
На сайте с 03.09.2009
Offline
784
#1

через foreach пересоберите и array_push, так на вскидку

D
На сайте с 28.06.2008
Offline
1104
#2

Я тоже понимаю что циклом, я не понимаю КАК :))

Z0
На сайте с 03.09.2009
Offline
784
#3

Я похмеляюсь, лень писать код :) Если никто не поможет или вы сами не додумаетесь, как обычно, то напишу завтра 🤪

Берете первый массив foreach, и далее через ключ составляете новый, используя одинаковый ключ других массивов :) Блин, сам не понял что написал :)

D
На сайте с 28.06.2008
Offline
1104
#4

Нашел пример, мож кому будет полезно:

function mergeArrays($filenames, $age, $kategoriya) {
$result = array();

foreach ( $filenames as $key=>$name ) {
$result[] = array( 'name' => $name, 'age' => $age[$key], 'kategoriya' => $kategoriya[ $key ] );
}

return $result;
}
Gerga
На сайте с 02.08.2015
Offline
94
#5

Dram, как вариант:


function array_map_merge_staff($name, $age, $prof) {
return array(
'name' => $name,
'age' => $age,
'prof' => $prof,
);
}

$final = array_map('array_map_merge_staff', $names, $ages, $profs);
Z0
На сайте с 03.09.2009
Offline
784
#6


$arrayName = array(
"Иванов И.В.",
"Петров П.А.",
"Сидоров А.К."
);


$arrayAge = array(
"25",
"42",
"54"
);

$arrayProf = array(
"менеджер",
"директор",
"строитель"
);


$array_mix = array();

foreach($arrayName as $key=>$arrayNames)
{
array_push($array_mix, array($arrayName[$key],$arrayAge[$key],$arrayProf[$key]) );
}

print_r($array_mix);

Вы не примеры ищите, а сами писать пробуйте, это тренирует мозг :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий