繁体   English   中英

PHP array_merge无法正常工作

[英]PHP array_merge not working

使用PHP。 我有此键和值的数组1:

$array_1 = array(
(more values)
'propub_cost_max' => 5,
'propub_cost_min' => 0.5,
'average_calc_last' => '-1 Months',
'propub_qtd_first_offer' => 4
);

和数组2:

$array_2 = array(
'propub_cost_max' => 20,
'propub_cost_min' => (no value),
'average_calc_last' => (no value),
'propub_qtd_first_offer' => (no value)
);

我想将数组2与数组1合并,所以我做到了:

$result = array_merge($array_2, $array_1);

但是结果是:

$result = array(
(more values)
'propub_cost_max' => 5,
'propub_cost_min' => 0.5,
'average_calc_last' => '-1 Months',
'propub_qtd_first_offer' => 4
);

propub_cost_max键应采用值20,对吗?

这样做的想法是保留一些值,如果有任何值,当然要替换那些值不同的地方。 我认为array_merge应该可以工作,但是...

谢谢你们。

“如果输入数组具有相同的字符串键,则该键的后一个值将覆盖前一个。” 在你的情况下,array_1是后者。

诺加德说。

(链接到array_merge

并且

您有一个}而不是括号。

TheValyreanGroup所说

这两个都是绝对正确的。 所以

$result = array_merge($array_1, $array_2); 

将解决您的问题。 交换值,以便$array_2现在将覆盖$array_1的值。

为了解决您希望在不知道要保留哪些值和哪些条件的情况下更新某些值的总体问题,我们简化为不使用空值覆盖值,因此:

$array_2 = array_filter($array_2); //clears empty values
$result = array_merge($array_1, $array_2); // as before. updates non-empty new values.

这将解决您的问题

array_merge_recursive($array_1, $array_2);

暂无
暂无

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

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