实现find_common函数。当传递两个名称数组时,它将返回一个包含出现在一个或两个数组中的名称的数组。返回的数组应该没有重复。
<?php
class Names
{
public static function find_common($array1, $array2)
{
$arr = array();
foreach($array1 as $value1){
if(in_array($value1,$array2)){
array_push($arr,$value1);
}
}
return $arr;
}
}
$names = Names::find_common(['Ava', 'Emma', 'Olivia'], ['Olivia', 'Sophia', 'Emma']);
echo join(', ', $names); // should print Emma, Olivia, Ava, Sophia
输出应打印:Emma,Olivia,Ava,Sophia 我得到的只是奥利维亚艾玛(:
答案 0 :(得分:3)
使用
array_unique(array_merge(['Ava', 'Emma', 'Olivia'], ['Olivia', 'Sophia', 'Emma']));
array_merge
将所有值放在一个数组中,然后array_unique
删除重复项。
答案 1 :(得分:0)
这真的很容易。使用array_intersect()
:
array_intersect(['Ava', 'Emma', 'Olivia'], ['Olivia', 'Sophia', 'Emma']);
数组将包含Emma&Olivia。
检查文档! :-) http://php.net/manual/en/function.array-intersect.php
更新您的问题未反映您想要的输出。您真的要问如何合并没有重复的数组吗?
在这种情况下,将数组与
合并array_unique(array_merge(['Ava', 'Emma', 'Olivia'], ['Olivia', 'Sophia', 'Emma']));
答案 2 :(得分:0)
$names = unique_names(['Ava', 'Emma', 'Olivia'], ['Olivia', 'Sophia', 'Emma']);
echo join(', ', $names); // should print Emma, Olivia, Ava, Sophia
答案 3 :(得分:0)
尝试对我有用:
function unique_names(array $array1, array $array2) : array
{
$array3= array_intersect($array1,$array2);
return array_unique(array_merge($array3,$array1, $array2));
}