我尝试使用现有的数组值添加一个数组值,但我发现如何添加它们
阵列-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但是没有工作。
请建议我该怎么做。
答案 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'];