Как присоединиться к значениям массива в PHP?

У меня есть массив 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 ) ) 

Можно ли так присоединиться?

Solutions Collecting From Web of "Как присоединиться к значениям массива в PHP?"

Вы должны использовать 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 ) )