ホームページ > バックエンド開発 > PHPチュートリアル > PHPの配列検索機能の使い方まとめ

PHPの配列検索機能の使い方まとめ

php中世界最好的语言
リリース: 2023-03-27 07:02:02
オリジナル
3277 人が閲覧しました

今回は、phpの配列検索関数の使い方と、phpの配列検索関数を使用する際の注意点についてまとめました。実際の事例を見てみましょう。

PHP は、配列内の指定された値の存在を検索します。検索には常に foreach ループが使用されます。
より良い方法があります。PHP の 3 つの組み込み配列関数を使用して、指定された値が配列内に存在するかどうかを確認できます。これら 3 つの配列は、in_array()、array_search()、array_key_exists() です。

以下では、これら 3 つの PHP 配列関数の定義と関数を紹介します。

1. PHP 配列検索関数 in_array(value,array,type)
この関数の機能は、array の指定された値を検索することです。このパラメーターが true に設定されている場合、検索は行われます。データと配列の値が同じ型であるかどうか、つまり等しいかどうかがチェックされます。

<?php
$people = array("Peter", "Joe", "Glenn", "Cleveland");
if(in_array("Glenn",$people)){
  echo "Match found";
}else{
  echo "Match not found";
}
?>
ログイン後にコピー

出力:
一致が見つかりました

2番目、PHP配列検索関数array_key_exists(key,array)
この関数は、指定されたキーが配列配列内に存在するかどうかを判断するもので、キーが存在する場合はtrueを返し、そうでない場合は返します。間違い 。

<?php
$a=array("a"=>"Dog","b"=>"Cat");
if(array_key_exists("a",$a)){
 echo "Key exists!";
}else{
 echo "Key does not exist!";
}
?>
ログイン後にコピー

出力:
キーが存在します!

三、PHP配列検索関数array_search(value,array,strict)
array_search()関数はin_array()と同じで、配列内のキー値を検索します。値が見つかった場合は、一致する要素に対応するキーが返されます。見つからない場合は false を返します。 PHP 4.2.0 より前では、関数は失敗時に false ではなく null を返していたことに注意してください。同様に、3 番目のパラメーター strict が true として指定されている場合、データ型 と値が一致する場合にのみ、対応する要素のキー名が返されます。

<?php
$a=array("a"=>"Dog","b"=>"Cat","c"=>5,"d"=>"5");
echo array_search("Dog",$a);
echo array_search("5",$a);
?>
ログイン後にコピー

出力:
ad

実際の性能比較後、データ量が1000未満など大きくない場合は、どの検索方法でも性能のボトルネックにはなりません。
ただし、データ量が比較的大きい場合は、array_key_exists を使用する方が適切です。
テストによると、array_key_exist は in_array よりも 10 倍、さらには数十倍効率的です。

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

コンソールコマンドを使用して yii フレームワークを介してスケジュールされたタスクを作成する手順の詳細な説明

yii フレームワークで配列の形式でフォームモデルを送信する手順の詳細な説明

以上がPHPの配列検索機能の使い方まとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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