PHP では、指定された値が配列に存在するかどうかを調べる方法がたくさんあります。昔、愚かにも foreach ループを使って値を見つけたことを思い出します。今回は、主に PHP の 3 つの組み込みの方法を共有します。配列関数を使用して、指定された値が配列内に存在するかどうかに関係なく、3 つの配列は in_array()、array_search()、array_key_exists() です。
まずそれぞれの定義と関数を紹介します
この関数の機能は、配列配列内で指定された値を検索することです。 type はオプションのパラメーターです。このパラメーターを true に設定すると、検索されたデータの型と配列の値が同じであるかどうか、つまり、それらが等しいかどうかがチェックされます。例:
<p><?php</p>$people = array("Peter", "Joe", "Glenn", "Cleveland");<br />if(in_array("Glenn",$people)){<br /> echo "Match found";<br />}else{<br /> echo "Match not found";<br />}<br /><p>?></p>
出力:
一致が見つかりました
この関数は、指定されたキーが配列配列に存在するかどうかを判断するもので、キーが存在する場合は true を返し、存在しない場合は false を返します。例:
<p><?php</p>$a=array("a"=>"Dog","b"=>"Cat");<br />if(array_key_exists("a",$a)){<br /> echo "Key exists!";<br />}else{<br /> echo "Key does not exist!";<br />}<br /><p>?></p>
出力:
キーが存在します!
この関数は in_array() と同じで、配列内のキー値を検索します。値が見つかった場合は、一致する要素に対応するキーが返されます。
見つからない場合は false を返します。
PHP 4.2.0 より前では、関数は失敗時に false ではなく null を返していたことに注意してください。同様に、3 番目のパラメーター strict が true に指定されている場合、データ型と値が一貫している場合にのみ、対応する要素のキー名が返されます。
例:
<p><?php</p>$a=array("a"=>"Dog","b"=>"Cat","c"=>5,"d"=>"5");<br />echo array_search("Dog",$a);<br />echo array_search("5",$a);<br /><p>?></p>
出力: ad 実際のパフォーマンス比較後、データ量が少ない場合など、データ量が多くない場合1000、検索 どちらを使用してもパフォーマンスのボトルネックにはなりません。ただし、データ量が比較的大きい場合は、array_key_exists を使用する方が適切です。
テストによると、array_key_exist は in_array よりも 10 倍、さらには数十倍効率的です。