-1

I've two arrays as follows:

$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
        )

)

and second array is as follows:

 $LastSendNewsletterDetail = 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
            )

    )

Now what I want to achieve is compare the key values(named newsletter_id) with each other from above two arrays. If they match with each other then insert the data from array $LastSendNewsletterDetail to the first array $grid_data. If they don't match then insert blank values to the first array $grid_data.

For example the desired ultimate $grid_data array should look like this :

$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
        )

)

How to achieve this? Thanks in advance.

PHPLover
  • 1
  • 51
  • 158
  • 311
  • Have you tried looking at `array_merge` ? – Shankar Narayana Damodaran Mar 18 '14 at 06:23
  • @ShankarDamodaran: I tried array_merge. But I'm not merging the entire second array into first array. I only want to insert the last two key-value pairs from the second array. Then how should I do this after comparison of newsletter_ids from both arrays? Do you have any idea? – PHPLover Mar 18 '14 at 06:34

1 Answers1

-1

try this

for($i=0; $i < $grid_data.lenght; $i++)
{
  $track =0;
  foreach($LastSendNewsletterDetail 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
  }
}
zer09
  • 1,507
  • 2
  • 28
  • 48