[英]How to add one array value to existing array?
我正在嘗試使用現有數組值添加一個數組值,但我不知道如何添加它們
陣列 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 但不起作用。
請建議我該怎么做。
使用array_merge
函數和從數組到對象的轉換(轉換)的解決方案,反之亦然(僅適用於基本的stdClass
對象):
// $array1 is your first array with 'main' key
// $array2 is your second array with 'dt' key
$main_arr = (array) current($array1['main']); // converting object into array
$merged = array_merge($main_arr, $array2['dt']); // combining "properties"
$array1['main'] = [(object) $merged]; // saving object with additional properties back to the initial array
print_r($array1); // will give the expected output
[0] => stdClass 對象
您在索引0
擁有的不是array
,而是object
。 除非它實現了ArrayAccess
接口,否則您不能像使用常規數組那樣執行此操作。
更多關於對象: https : //secure.php.net/manual/en/language.types.object.php
假設$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'];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.