1. PHP の組み込み関数 array_intersect() を直接使用できます
array array_intersect ( array $array1 , array $array2 [, array $ ... ] )
array_intersect() は、array1 のすべての項目を含む配列を返します他のすべてのパラメータ配列にも現れる値。キー名は変更されないことに注意してください。
コード:
コードをコピー コードは次のとおりです:
$array1 = array("a" => "green", "red", "blue"); $array2 = array("b" => "green", " yellow", "red");
$result = array_intersect($array1, $array2)
出力結果:
Array( [a] => 緑 [0] => 赤)
2. アルゴリズムを自分で書くこともできます:
コードは次のとおりです:
php function my_array_same($a){ $b = array_unique($a);
echo "
"; r)); $k を返す
}
$a = array("赤"、"緑"、"ピンク"、"赤"、"黄"、"ピンク"、"赤"); my_array_same($a);
var_dump( array_unique($r));
出力結果:
[3]=>
string(3) ]=>
string(4) "pink"
}
3. 次のように書くこともできます:
コードは次のとおりです:
function my_array_intersect ($arr1,$arr2){
for($i= 0;$i$temp[]=$arr1[$i]
} for($i= 0;$i$temp[]=$arr2[$i]; sort($temp); for($i) =0;$iif($temp[$i]==$temp[$i+1]) $get[]=$temp[$i];
return $get
}
$array1 = array("green", "red", "blue");
$array2 = array("green", " yellow", "red"); ;pre>";
print_r(my_array_intersect($array1, $ array2));
echo "
";
?>
1次元配列の場合、3番目のアルゴリズムの方が高速です上記のアルゴリズムはすべて 1 次元配列に適しています。では、多次元配列で同じ要素を見つけるにはどうすればよいでしょうか?
アイデア: 多次元配列を 1 次元配列に変換し、上記のアルゴリズムを使用してそれを出力できます。
コード:
コードをコピー
コードは次のとおりです:
function toarr($arr){ //配列を再帰し、文字列として返します
foreach ($arr as $k=> ;$v ){
if (!is_array($v)) {
$str.=$v." ";
}
$str.=toarr($v);
return $ str;
}/*再帰関数の終わり*/
上記の式は、多次元配列を文字列に変換し、それを expode 関数を使用して 1 次元配列に変換します。 考えてみてください。これは、データベースが同じ名前の特定のフィールドの値を返す場合にも当てはまります。もちろん、SQL ステートメントを通じても実現できます。
http://www.bkjia.com/PHPjc/325862.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/325862.html
技術記事
1. PHP の組み込み関数 array_intersect() を直接使用できます。 array array_intersect ( array $array1 , array $array2 [, array $ ... ] ) array_intersect() は、次の内容を含む配列を返します...