我有两个数组,当数组相同的键时,我需要获取内容,我使用array_intersect_key获得相同的键,并返回以下结果:
Array1 :
(
[NewYork] = "5,NewYork";
[london] = "20,london";
[Pari] = "40,Pari";
)
Array2 :
(
[China] = "14,China";
[london] = "40,london";
[Tokyo] = "2,Tokyo";
)结果
array_intersect_key(Array1,Array2); it返回:[london] = "20,london";
但我要向[london] = "20,london"; and [london] = "40,london";展示
或者像这样的[london] = "20,london|40,london";
没有循环,我有一个大文件
谢谢!
发布于 2018-03-15 13:38:43
嗨,我已经尝试了这段代码,以获得最接近的结果没有循环。这可能对你有帮助。
码
$array1['NewYork'] = "5,NewYork";
$array1['london'] = "20,london";
$array1['Tokyo'] = "40,Pari";
$array2['China'] = "14,China";
$array2['london'] = "40,london";
$array2['Tokyo'] = "2,Tokyo";
$res1 = array_intersect_key($array1,$array2);
$res2 = array_intersect_key($array2,$array1);
echo "<pre>";
print_r(array_merge_recursive($res1,$res2));
die;结果
Array
(
[london] => Array
(
[0] => 20,london
[1] => 40,london
)
[Tokyo] => Array
(
[0] => 40,Pari
[1] => 2,Tokyo
)
)如果有用的话请告诉我。祝好运。
更新
这个怎么样?它将返回相同的结果。
function myfunction($a,$b)
{
if ($a!=$b)
{
return 0;
}
return ($a>$b)?1:-1;
}
$array1['NewYork'] = "5,NewYork";
$array1['london'] = "20,london";
$array1['Tokyo'] = "40,Pari";
$array2['China'] = "14,China";
$array2['london'] = "40,london";
$array2['Tokyo'] = "2,Tokyo";
$res1 = array_merge_recursive($array1,$array2);
$res2 = array_uintersect_assoc($res1,$array1,"myfunction");
echo "<pre>";
print_r($res2);
die;https://stackoverflow.com/questions/49300194
复制相似问题