合并两个共享键的关联数组并连接字符串值
Merge two associative arrays sharing keys and concatenate string values
我有两个数组:
$arr1 = array("123" => "abc");
$arr2 = array("123" => "xyz", "456" => "lmn");
我希望结果数组为:
$arr = array("123" => "abc,xyz", "456" => "lmn");
我知道我可以编写一些代码来获取与键对应的值,然后使用像“;”这样的分隔符进行连接或',',但我想知道有没有有效的方法来做到这一点?
也许是内置函数?
简单的 foreach 就可以了!检查内联评论
$arr1 = ["123" => "abc"];
$arr2 = ["123" => "xyz", "456" => "lmn"];
foreach ($arr2 as $key => $value) {
if(array_key_exists($key, $arr1)) // Check if key exists in array
$arr1[$key] .= ",$value"; // If so, append
else
$arr1[$key] = $value; // otherwise, add
}
print_r($arr1);
打印
Array
(
[123] => abc,xyz
[456] => lmn
)
勾选这个Eval
试试这个:
$arr1 = array("123" => "abc");
$arr2 = array("123" => "xyz", "456" => "lmn");
$o = [];
foreach($arr1 as $k => $v)
{
$o[$k][] = $v;
}
foreach($arr2 as $k => $v)
{
$o[$k][] = $v;
}
$result = array_map(function($v){implode(',', array_unique($v));}, $o);
我有两个数组:
$arr1 = array("123" => "abc");
$arr2 = array("123" => "xyz", "456" => "lmn");
我希望结果数组为:
$arr = array("123" => "abc,xyz", "456" => "lmn");
我知道我可以编写一些代码来获取与键对应的值,然后使用像“;”这样的分隔符进行连接或',',但我想知道有没有有效的方法来做到这一点? 也许是内置函数?
简单的 foreach 就可以了!检查内联评论
$arr1 = ["123" => "abc"];
$arr2 = ["123" => "xyz", "456" => "lmn"];
foreach ($arr2 as $key => $value) {
if(array_key_exists($key, $arr1)) // Check if key exists in array
$arr1[$key] .= ",$value"; // If so, append
else
$arr1[$key] = $value; // otherwise, add
}
print_r($arr1);
打印
Array
(
[123] => abc,xyz
[456] => lmn
)
勾选这个Eval
试试这个:
$arr1 = array("123" => "abc");
$arr2 = array("123" => "xyz", "456" => "lmn");
$o = [];
foreach($arr1 as $k => $v)
{
$o[$k][] = $v;
}
foreach($arr2 as $k => $v)
{
$o[$k][] = $v;
}
$result = array_map(function($v){implode(',', array_unique($v));}, $o);