Мой вопрос звучит немного запутанно, но на самом деле он прост. Позвольте мне сначала описать вам сценарий. У меня есть два массива, а именно. $grid_data
и $sent_data
. Оба массива генерируются динамически в зависимости от пользовательского ввода. Так, например, я печатаю ниже содержимое обоих этих массивов:
$grid_data = Array
(
[0] => Array
(
[newsletter_id] => 1
[newsletter_name] => Eywa Solutions
[newsletter_subject] => Holi Wishes
[newsletter_email_body] => Happy Holi to all the friends
[newsletter_call_to_action_status] => 0
[newsletter_call_to_action_text] =>
[newsletter_call_to_action_link] =>
[newsletter_status] => 2
[newsletter_schedule] => 0
[newsletter_created_date] => Mar 17 2014, 16:21 pm
[newsletter_updated_date] => 0
)
[1] => Array
(
[newsletter_id] => 2
[newsletter_name] => Akshay Nikte
[newsletter_subject] => The Don
[newsletter_email_body] => How are yoy Nikte Saheb?
[newsletter_call_to_action_status] => 0
[newsletter_call_to_action_text] =>
[newsletter_call_to_action_link] =>
[newsletter_status] => 2
[newsletter_schedule] => 0
[newsletter_created_date] => Mar 18 2014, 06:52 am
[newsletter_updated_date] => 0
)
)
$sent_data = Array
(
[0] => Array
(
[newsletter_id] => 1
[newsletter_sent_count] => 5
[newsletter_sent_date] => 1395121193
)
[1] => Array
(
[newsletter_id] => 2
[newsletter_sent_count] => 7
[newsletter_sent_date] => 1395121227
)
)
Теперь я хочу сравнить значения ключа [newsletter_id]
из обоих вышеупомянутых массивов друг с другом. Если совпадение найдено, добавьте пары ключ-значение ([newsletter_sent_count], [newsletter_sent_date]) в соответствующий массив из массива $grid_data
. Если совпадение не найдено, вставьте пустые значения для этих ключей ([newsletter_sent_count], [newsletter_sent_date]). В приведенном выше случае окончательно сгенерированный $grid _data
должен выглядеть следующим образом:
$grid_data = Array
(
[0] => Array
(
[newsletter_id] => 1
[newsletter_name] => Eywa Solutions
[newsletter_subject] => Holi Wishes
[newsletter_email_body] => Happy Holi to all the friends
[newsletter_call_to_action_status] => 0
[newsletter_call_to_action_text] =>
[newsletter_call_to_action_link] =>
[newsletter_status] => 2
[newsletter_schedule] => 0
[newsletter_created_date] => Mar 17 2014, 16:21 pm
[newsletter_updated_date] => 0
[newsletter_sent_count] => 5
[newsletter_sent_date] => 1395121193
)
[1] => Array
(
[newsletter_id] => 2
[newsletter_name] => Akshay Nikte
[newsletter_subject] => The Don
[newsletter_email_body] => How are yoy Nikte Saheb?
[newsletter_call_to_action_status] => 0
[newsletter_call_to_action_text] =>
[newsletter_call_to_action_link] =>
[newsletter_status] => 2
[newsletter_schedule] => 0
[newsletter_created_date] => Mar 18 2014, 06:52 am
[newsletter_updated_date] => 0
[newsletter_sent_count] => 7
[newsletter_sent_date] => 1395121227
)
)
Я хочу сделать это наиболее оптимальным образом. Я попытался использовать array_merge() для достижения этого, но мне это не удалось. Так может ли кто-нибудь из талантливых людей помочь мне в этом отношении, пожалуйста? Заранее спасибо. Если вам нужна дополнительная информация, я могу предоставить вам то же самое. Попытка, сделанная мной, заключается в следующем:
$arr_length = count($grid_data);
for($i=0; $i < $arr_length; $i++) {
$track =0;
foreach($sent_data as $value) {
if($value['newsletter_id'] === $grid_data[$i]['newsletter_id'] ) {
array_merge($grid_data[$i], $value);
$track=1;
}
}
if($track === 0) {
//insert blank value here
}
}