PHP的array_merge空值总是小于prioritar [英] PHP array_merge empty values always less prioritar
本文介绍了PHP的array_merge空值总是小于prioritar的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的目标是要合并2个不同的阵列。
我有表一和安培; b的。
从表中数据A更prioritar。
问题:如果从一个关键一包含空值,我想借此从表B的一员。
下面是我的code:
< PHP$ A =阵列('键1'=>中从prioritar KEY1,my_problem'=>中);$ B =阵列('键1'=>中key1的由少prioritar,键2'=>中为key2由少prioritar,my_problem'=>中我达到了我的目标!);$合并= array_merge($ B $ A);后续代码var_dump($合并);
有没有办法做到这一点在一个函数没有做类似下面?
的foreach($ B $作为重点=> $值)
{
如果(!array_key_exists($键,$ A)||空($ A [$关键])){
美元[$关键] = $价值;
}
}
解决方案
您可以使用 array_replace
和 array_filter
$ mergedArray = array_replace($ B,array_filter($ A));
其结果将是:
阵列(3){
[键1] =>
串(19),从prioritar KEY1
[KEY2] =>
串(24)从少prioritar KEY2
[my_problem] =>
串(18)我达到了我的目标!
}
My goal is to merge 2 different arrays.
I have table "a" & "b". Data from table "a" are more prioritar.
PROBLEM: if a key from "a" contains an empty value, I would like to take the one from table "b".
Here is my code:
<?php
$a = array('key1'=> "key1 from prioritar", 'my_problem'=> "");
$b = array('key1'=> "key1 from LESS prioritar", 'key2'=>"key2 from LESS prioritar", 'my_problem'=> "I REACHED MY GOAL!");
$merge = array_merge($b, $a);
var_dump($merge);
Is there a way to do this in one function without doing something like below?
foreach($b as $key => $value)
{
if(!array_key_exists($key, $a) || empty($a[$key]) ) {
$a[$key] = $value;
}
}
解决方案
You can use array_replace
and array_filter
$mergedArray = array_replace($b, array_filter($a));
The result would be:
array(3) {
["key1"]=>
string(19) "key1 from prioritar"
["key2"]=>
string(24) "key2 from LESS prioritar"
["my_problem"]=>
string(18) "I REACHED MY GOAL!"
}
这篇关于PHP的array_merge空值总是小于prioritar的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文