$array1:-
Array
(
[Test Stock] => Array
(
[intStockCount] => 10
)
[CARTON 50 X 50 X 50] => Array
(
[intStockCount] => 10
)
)
$array2:-
Array
(
[Test Stock] => Array
(
[intInvoiceCount] => 20
)
[CARTON 50 X 50 X 50] => Array
(
[intInvoiceCount] => 30
)
)
我需要一个新的阵列组合在一起,而不使用环路
Array
(
[Test Stock] => Array
(
[intStockCount] => 10
[intInvoiceCount] => 20
)
[CARTON 50 X 50 X 50] => Array
(
[intStockCount] => 10
[intInvoiceCount] => 30
)
)
您可以使用array_merge_recursive
来完成此工作。
数组合并_草书
array_marge_recurive((将一个或多个数组的元素合并在一起,以便将其中一个的值附加到前一个的末尾。它返回生成的数组。
如果输入数组具有相同的字符串键,那么这些键的值将合并到一个数组中,并且这是递归完成的,因此,如果其中一个值本身是数组,函数也会将其与另一个数组的相应条目合并。但是,如果数组具有相同的数字键,则后面的值不会覆盖原始值,而是被追加。
只需:
<?php
$array1 = array(
"Test Stock" => array(
"intStockCount" => 10
),
"CARTON 50 X 50 X 50" => array(
"intStockCount" => 10
)
);
$array2 = array(
"Test Stock" => array(
"intInvoiceCount" => 20
),
"CARTON 50 X 50 X 50" => array(
"intInvoiceCount" => 30
)
);
$final = array_merge_recursive($array1,$array2);
echo '<pre>';
print_r($final);
echo '</pre>';
/* OUTPUT
Array
(
[Test Stock] => Array
(
[intStockCount] => 10
[intInvoiceCount] => 20
)
[CARTON 50 X 50 X 50] => Array
(
[intStockCount] => 10
[intInvoiceCount] => 30
)
)
*/
这里需要注意的一点是,您在两个arrays
中都使用了相同的字符串key
。正如PHP文档所说的
。。。这些键的值被合并到一个数组中
$array1 = array(
'Test Stock' => array(
'intStockCount' => 10,
),
'CARTON 50 X 50 X 50' => array(
'intStockCount' => 10
)
);
$array2 = array(
'Test Stock' => array(
'intStockCount' => 10,
),
'CARTON 50 X 50 X 50' => array(
'intStockCount' => 10
)
);
$result = array_merge_recursive($array1, $array1);
var_dump($result);
你必须改变你的数组结构。
对于普通阵列合并:
$result = array_merge($array1, $array2);
http://php.net/manual/en/function.array-merge.php