是否有任何功能可以執行array_diff()
的逆操作?任何獲得兩個數組共同元素的函數?
我的意思是,如果我有:
array(1,2,3)
array(3,4,5)
我想這個函數返回array(3)
,或直接3
。
注意:array_intersect()
不適合我。
哈維爾
是否有任何功能可以執行array_diff()
的逆操作?任何獲得兩個數組共同元素的函數?
我的意思是,如果我有:
array(1,2,3)
array(3,4,5)
我想這個函數返回array(3)
,或直接3
。
注意:array_intersect()
不適合我。
哈維爾
的交點如果array_intersect() doesn't fit me
是因爲它返回:
Array
(
[2] => 3
)
而不是:
Array
(
[0] => 3
)
或 3
然後,你可以很容易地在陣列轉化爲可行的東西與array_values():
<?php
$arr1 = array(1,2,3);
$arr2 = array(3,4,5);
$new = array_values(array_intersect($arr1,$arr2));
$new = $new[0];
print_r($new); //3
?>
否則,請解釋一下你的情況。
既然你不想使用array_intersect()
,檢查此低效的方法:
$arr1= array(1,2,3);
$arr2= array(3,4,5);
function arr_intersect($array1, $array2)
{
$array_result=array();
$array_shared = array_diff($array1+$array2, array_diff($array1, $array2));
$count=count($array_shared);
return array_values($array_shared);
}
print_r(arr_intersect($arr1, $arr2));
爲什麼不呢? 'array_intersect()'完全是你想要的。 –
如果沒有任何詳細的評論,留下一段說明「完全符合我所需的功能並不適合我的功能」的說明並不完全是尋求幫助的正確方法。 –
除了你提供的內容,'array_intersect()'確實有效:http://codepad.org/8uis96MM粘貼中有兩個版本。 – tigrang