19

ユーザーIDを持つ2つの配列があります

$array1 = array("5","26","38","42");

$array2 = array("15","36","38","42");

私が必要とするのは、次のように配列から共通の値が必要なことです

$array3 = array(0=>"38", 1=>"42");

私は試しarray_intersect()ました。実行時間が最小限になるメソッドを取得したいと考えています。助けてください、友よ。

4

4 に答える 4

35

ネイティブ PHP 関数は、独自のアルゴリズムを構築しようとするよりも高速です。

$result = array_intersect($array1, $array2);
于 2013-07-15T07:35:59.037 に答える
3

これはおそらく長い方法ですが、これを使用してください:

$array1 = array("5","26","38","42");

$array2 = array("15","36","38","42");

$final_array = array();

foreach($array1 as $key=>$val){
    if(in_array($val,$array2)){
        $final_array[] = $val;
    }
}

print_r($final_array);

結果: 配列 ( [0] => 38 [1] => 42 )

于 2013-07-15T07:37:21.750 に答える
0

問題に慣れる必要はないと思う$key=>$valueので、この回答を確認してください:

<?php
$array1 = array("5", "26", "38", "42");
$array2 = array("15", "36", "38", "42");

foreach ($array1 as $value) {
    if (in_array($value, $array2)) {
        $array3[] = $value;
    }
}

print_r($array3);
?>
于 2013-07-15T07:39:59.983 に答える
0

array_intersect() は問題なく動作します。

array array_intersect ( array $array1 , array $array2 [, array $ ... ] )

$array1 = array("5","26","38","42");

$array2 = array("15","36","38","42");

echo array_intersect($array1, $array2);

http://fr2.php.net/array_intersect

于 2013-07-15T07:48:58.687 に答える