У меня есть массив 1 :
Array ( [0] => Array ( [recomendation_id] => 3588 [employee_id] => 90141063 [attendance_type_id] => 2 [start_dtm] => 2016-05-17 10:32:00 [end_dtm] => [request_message] => test notif [recomendation_status_id] => 1 [last_update_dtm] => 2016-05-17 10:32:43 [employee_name] => Nike Yulistia Angreni [attd_type_name] => Permittance [status_name] => Request ) )
И массив 2 :
Array ( [0] => Array ( [valuator1] => Wulan Lastia Permana ) )
Я хочу сделать значения массива в одном массиве. Я хочу получить результат следующим образом:
Array ( [0] => Array ( [recomendation_id] => 3588 [employee_id] => 90141063 [attendance_type_id] => 2 [start_dtm] => 2016-05-17 10:32:00 [end_dtm] => [request_message] => test notif [recomendation_status_id] => 1 [last_update_dtm] => 2016-05-17 10:32:43 [employee_name] => Nike Yulistia Angreni [attd_type_name] => Permittance [status_name] => Request [valuator1] => Wulan Lastia Permana ) )
Можно ли так присоединиться?
Вы должны использовать array_replace_recursive :
<?php $arr1 = Array ( Array ( "recomendation_id" => 3588, "employee_id" => 90141063, "attendance_type_id" => 2, "start_dtm" => "2016-05-17 10:32:00", "end_dtm" => "", "request_message" => "test notif", "recomendation_status_id" => 1, "last_update_dtm" => "2016-05-17 10:32:43", "employee_name" => "Nike Yulistia Angreni", "attd_type_name" => "Permittance", "status_name" => "Request" ) ); $arr2 = Array ( Array ( "valuator1" => "Wulan Lastia Permana" ) ); print_r(array_replace_recursive($arr1,$arr2));
Результат:
Array ( [0] => Array ( [recomendation_id] => 3588 [employee_id] => 90141063 [attendance_type_id] => 2 [start_dtm] => 2016-05-17 10:32:00 [end_dtm] => [request_message] => test notif [recomendation_status_id] => 1 [last_update_dtm] => 2016-05-17 10:32:43 [employee_name] => Nike Yulistia Angreni [attd_type_name] => Permittance [status_name] => Request [valuator1] => Wulan Lastia Permana ) )
Ваша Eval
Если вы используете array_merge_recursive , ваш результат будет:
Array ( [0] => Array ( [recomendation_id] => 3588 [employee_id] => 90141063 [attendance_type_id] => 2 [start_dtm] => 2016-05-17 10:32:00 [end_dtm] => [request_message] => test notif [recomendation_status_id] => 1 [last_update_dtm] => 2016-05-17 10:32:43 [employee_name] => Nike Yulistia Angreni [attd_type_name] => Permittance [status_name] => Request ) [1] => Array ( [valuator1] => Wulan Lastia Permana ) )
Вы можете использовать функцию array_merge_recursive
$result = array_merge_recursive($array1, $array2);
По моему мнению, это не самый лучший вариант, но он по-прежнему будет решать вашу проблему.
foreach ($arr2 as $k => $v) { $arr1[$key] = array_merge($arr1[$key], $v); }
Это будет проходить через второй массив и объединить каждое значение с первым массивом.
Примечание. Ключи массива должны быть одинаковыми в обоих массивах, чтобы это работало.
Да, это возможно. Пусть ваш первый массив равен $arr1
а второй – $arr2
.
Просто назначьте новое поле вашему первому массиву, ваш первый массив будет обновлен с помощью key, value pair
второго массива.
$arr1[0]['valuator1'] = $arr2[0]['valuator1']; print_r($arr1);
Результат:
Array ( [0] => Array ( [recomendation_id] => 3588 [employee_id] => 90141063 [attendance_type_id] => 2 [start_dtm] => 2016-05-17 10:32:00 [end_dtm] => [request_message] => test notif [recomendation_status_id] => 1 [last_update_dtm] => 2016-05-17 10:32:43 [employee_name] => Nike Yulistia Angreni [attd_type_name] => Permittance [status_name] => Request [valuator1] => Wulan Lastia Permana ) )