简体   繁体   English

我想合并二维数组

[英]I want to merge two dimensional arrays

Let me describe you the scenario I have got two arrays one with second column as 0 and another array with second column with some value, 让我描述一下这个场景,我有两个数组,其中第二列为0,另一个数组的第二列为某个值,

first array 第一个数组

Array 数组

(

[0] => Array
    (
        [time_frame] => 2017-05-19
        [email_data] => 0
    )

[1] => Array
    (
        [time_frame] => 2017-05-20
        [email_data] => 0
    )

[2] => Array
    (
        [time_frame] => 2017-05-21
        [email_data] => 0
    )

[3] => Array
    (
        [time_frame] => 2017-05-22
        [email_data] => 0
    )

[4] => Array
    (
        [time_frame] => 2017-05-23
        [email_data] => 0
    )

[5] => Array
    (
        [time_frame] => 2017-05-24
        [email_data] => 0
    )

[6] => Array
    (
        [time_frame] => 2017-05-25
        [email_data] => 0
    )

second array 第二个数组

Array 数组

(

[0] => Array
    (
        [time_frame] => 2017-05-20
        [email_data] => 1
    )

[1] => Array
    (
        [time_frame] => 2017-05-21
        [email_data] => 2
    )

[2] => Array
    (
        [time_frame] => 2017-05-24
        [email_data] => 8
    )

)

Now what I want to achieve is the data below: 现在我要实现的是以下数据:

[
{
    "time_frame": "2017-05-19",
    "email_data": "0"
},
{
    "time_frame": "2017-05-20",
    "email_data": "1"
},
{
    "time_frame": "2017-05-21",
    "email_data": "2"
},
{
    "time_frame": "2017-05-22",
    "email_data": "0"
},
{
    "time_frame": "2017-05-23",
    "email_data": "0"
},
{
    "time_frame": "2017-05-24",
    "email_data": "8"
},
{
    "time_frame": "2017-05-25",
    "email_data": "0"
}

] ]

Thanks in advance. 提前致谢。

Check out this piece of code... 看看这段代码...

$data1 = array(
        array('time_frame'=>'2017-05-19', 'email_data'=>0),
        array('time_frame'=>'2017-05-20', 'email_data'=>0),
        array('time_frame'=>'2017-05-21', 'email_data'=>0),
        array('time_frame'=>'2017-05-22', 'email_data'=>0),
        array('time_frame'=>'2017-05-23', 'email_data'=>0),
        array('time_frame'=>'2017-05-24', 'email_data'=>0),
        array('time_frame'=>'2017-05-25', 'email_data'=>0)
    );


$data2 = array(
        array('time_frame'=>'2017-05-20', 'email_data'=>1),
        array('time_frame'=>'2017-05-21', 'email_data'=>2),
        array('time_frame'=>'2017-05-24', 'email_data'=>8)
    );


foreach ($data2 as $key2 => $value2)
{
    foreach ($data1 as $key1 => $value1)
    {
        if($value2['time_frame'] == $value1['time_frame']) {
            $data1[$key1] = $value2;
        }
    }
}

echo '<pre>';
print_r($data1);
echo '</pre>';

Why you do it using loop, php provide array_merge() function use it example is here.. 为什么使用循环来实现它,php提供了array_merge()函数使用它的示例在这里。

first array.. 第一个数组

$first = array(
        0 => Array
            (
                "time_frame" => "2017-05-20",
                "email_data" => "1"
            ),

        1 => Array
            (
                "time_frame" => "2017-05-21",
                "email_data" => "2"
            ),

        2 => Array
            (
                "time_frame" => "2017-05-24",
                "email_data" => "8"
            )
);

second array... 第二个数组...

$second = array(
            0 => Array
                (
                    "time_frame" => "2017-05-19",
                    "email_data" => 0
                ),

            1 => Array
                (
                    "time_frame" => "2017-05-20",
                    "email_data" => 0
                ),

            2 => Array
                (
                    "time_frame" => "2017-05-21"
                    ,"email_data" => 0
                ),

            3 => Array
                (
                    "time_frame" => "2017-05-22"
                    ,"email_data" => 0
                ),

            4 => Array
                (
                    "time_frame" => "2017-05-23"
                    ,"email_data" => 0
                ),

            5 => Array
                (
                    "time_frame" => "2017-05-24"
                    ,"email_data" => 0
                ),

            6 => Array
                (
                    "time_frame" => "2017-05-25"
                    ,"email_data" => 0
                )
    );

now your solutions is here.. 现在您的解决方案就在这里。

$combined_array = array_merge($first,$second);

and it give you required result. 它给您所需的结果。 Simple. 简单。

for printing result... 用于打印结果...

foreach($combined_array as $key){
        print_r($key);
        echo "<br> - - - - - - - - - - - - - - -- - - - - - - <br>";
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM