-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.

2
  • Have you tried looking at array_merge ? Commented Mar 18, 2014 at 6: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? Commented Mar 18, 2014 at 6:34

1 Answer 1

-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
  }
}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.