如何将一个数组值添加到现有数组?

时间:2016-05-09 20:43:08

标签: php arrays

我尝试使用现有的数组值添加一个数组值,但我发现如何添加它们

阵列-1

[main] => Array
        (
            [0] => stdClass Object
                (
                    [clientID] => 2
                    [maintenance_due] => 2016-05-09 00:00:00
                    [complete_maintenance] => 1
                    [description] => dfdff
                    [created_at] => 2016-05-01 00:00:00
                    [completed_on] => 2016-05-06 00:00:00
                    [name] => Bottel packing 
                    [type_id] => 1
                    [machinecode] => HITBTP001
                    [model_no] => ModelA
                    [created_date] => 2016-03-27 06:55:05
                    [updated_date] => 0000-00-00 00:00:00
                )

        )

阵列-2

[dt] => Array
    (
        [dtm] => 0
        [edm] => 1
    )

我想要这样

[main] => Array
        (
            [0] => stdClass Object
                (
                    [clientID] => 2
                    [maintenance_due] => 2016-05-09 00:00:00
                    [complete_maintenance] => 1
                    [description] => dfdff
                    [created_at] => 2016-05-01 00:00:00
                    [completed_on] => 2016-05-06 00:00:00
                    [name] => Bottel packing 
                    [type_id] => 1
                    [machinecode] => HITBTP001
                    [model_no] => ModelA
                    [created_date] => 2016-03-27 06:55:05
                    [updated_date] => 0000-00-00 00:00:00
                    [dtm] => 0
                    [edm] => 1


                )

        )

我尝试array_push功能并使用foreach但是没有工作。

请建议我该怎么做。

3 个答案:

答案 0 :(得分:1)

使用screen -r函数和从数组转换(转换)到对象的解决方案,反之亦然(仅适用于基本的nohup个对象):

if(($i = array_search($data_to_delete, $array, true)) !== false) {
    unset($array[$i]);
}

答案 1 :(得分:0)

  

[0] => stdClass对象

索引0下的内容不是array,而是object。除非它实现ArrayAccess接口,否则不能像使用常规数组那样执行此操作。

有关对象的更多信息:https://secure.php.net/manual/en/language.types.object.php

答案 2 :(得分:0)

假设$big_array是您发布的第一个数组,$small_array是您发布的第二个数组,那么这应该有效:

$big_array['main'][0] = (object)array_merge((array)$big_array['main'][0], $small_array['dt']);

我不知道你的代码是什么样的,所以这个代码可以自动为你工作:

$main[0] = (object)array_merge((array)$main[0], $dt);

根据Marcin Orlowski的评论,以下是执行此操作的正确方法,而不存在覆盖任何类或方法的风险:

$main[0]->dtm = $dt['dtm'];
$main[0]->edm= $dt['edm'];