PHP 出力配列内の同じ名前の要素を処理するいくつかの方法

WBOY
リリース: 2016-06-13 11:58:31
オリジナル
876 人が閲覧しました

1. PHP の組み込み関数 array_intersect() を直接使用できます。
array array_intersect ( array $array1 , array $array2 [, array $ ... ] )
array_intersect() は、配列、この配列には、他のすべてのパラメーター配列にも表示される array1 のすべての値が含まれます。キー名は変更されないことに注意してください。
コード:

コードをコピー コードは次のとおりです:


$array1 = array(" a" => "緑", "赤", "青");
$array2 = array("b" => "緑", "黄",​​ "赤"); >$result = array_intersect($array1, $array2);
?>

出力結果:
Array( [a] => 緑 [0] => 赤)

2. アルゴリズムを自分で書くこともできます:

コードをコピーします コードは次のとおりです:

< ?php
function my_array_same($a){
$b = array_unique($a);
$r = array_diff_key($a,$b); echo "

"; 
$k=var_dump(array_unique($r));
return $k;
}
$a = array("red", "green", "ピンク", "赤", "ピンク", "赤");
$r=my_array_same($a);
var_dump(array_unique($r)>?> ;


出力結果:
array(2) {

[3]=>
string(3) "red"
[5]=> 🎜>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") ;
エコー "
print_r(my_array_intersect($array1, $array2));
エコー
?>

それが 1 次元配列の場合、3 番目のアルゴリズムは最初のアルゴリズムよりも高速です。上記のアルゴリズムはすべて 1 次元配列に適していますが、多次元配列で同じ要素を見つけるにはどうすればよいでしょうか。

アイデア: 多次元配列を 1 次元配列に変換し、上記のアルゴリズムを使用して出力できます。

コード:



コードをコピー

コードは次のとおりです。

function toarr($arr){ //はい 配列は再帰され、文字列として返されます。 foreach ($arr as $k=>$v){ if (!is_array($v)) { $str.=$ v." "; }

else{

$str.=toarr($v);
}
return $str; recursive function*/


上記の式は、多次元配列を文字列に変換し、それを expode 関数を使用して 1 次元配列に変換します。

考えてみてください。これは、データベースが同じ名前の特定のフィールドの値を返す場合にも当てはまります。もちろん、SQL ステートメントを通じても実現できます。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート