ホームページ  >  記事  >  バックエンド開発  >  PHP 配列値検索プログラム_PHP チュートリアル

PHP 配列値検索プログラム_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:14:411156ブラウズ

PHP で配列内の指定された値を見つけるにはさまざまな方法があります。以下では、PHP での配列検索関数 in_array()、array_key_exists()、および array_search() の使用法を紹介します。配列には、上記の 3 つの方法があります:

in_array '関数は配列内の指定された値を検索します。 in_array(value,array,type)type オプション。このパラメータを true に設定すると、検索されたデータの型と配列の値が同じであるかどうかがチェックされます。

array_key_exists 'array_key_exists() 関数は、指定されたキーが配列内に存在するかどうかを判断し、キーが存在する場合は true を返し、存在しない場合は false を返します。 array_key_exists(キー,配列)

例1 array_key_exists() の例

コードは次のとおりですコードをコピー
$search_array = array('first' => 1, ' Second' => 4);
if (array_key_exists('first', $search_array)) {
echo "「最初の」要素は配列内にあります";
}
?>

例 #2 array_key_exists() と isset() の比較

isset() は配列内の NULL 値に対して TRUE を返しませんが、array_key_exists() は返します。

コードは次のとおりですコードをコピー
$search_array = array('first' => null, 'second' => 4);
// false を返します

isset($search_array['first']);

// true を返します

array_key_exists('first', $search_array);
?>

混合配列検索 (混合 $needle, 配列 $haystack [, bool $strict] )

最初のパラメータは検索する値、2 番目のパラメータは配列、最後のパラメータは検索時にデータ型が同じかどうかをチェックするかどうかを参照します。

コードは次のとおりですコードをコピー
$a=array("a"=>"犬","b"=>"猫","c"=>"馬");
echo array_search("犬",$a);
?>

$a=array("a"=>"5","b"=>5,"c"=>"5");
echo array_search(5,$a,true);
?>
上記のコードは次の結果を出力します:

この観点から、データ量が 1000 未満など、それほど多くない場合は、どのような検索方法も使用でき、ボトルネックにはなりません。 データ量が比較的多い場合には、array_key_exists の方が適切です。

もちろん、計算によれば、array_key_exists が占有するメモリは比較的大きくなります
。 配列構造は次のとおりです: array(1, 2, 3, ..) および array(1 => true, 2 => false, ..)
メモリ使用率は 1:2;

注: array_key_exist は in_array よりも 10 倍、さらには数十倍効率的です

シンプルなアルゴリズム

次のように、配列には 1000 個の要素があり、キー値は 1000000 未満の順序のない正の整数であり、連続していないと仮定します

$arr = array(1 => 'sadas', 20 => 'aasd', 5002 => 'fghfg', 190023 => 'rty', 248 => 'kj', 76 => 'sddd' ,...);

ここで、配列 $arr のキー値が 500 より大きく 600 未満である要素を取得したいと考えています。foreach を使用せずに完全にループするより効率的なアルゴリズムはありますか?

答え

コードは次のとおりです
コードをコピー
$result = array();

for($i = 501; $i If(!isset($arr[$i])) 続行;
$result[] = $arr[$i];
}

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/628954.html技術記事 PHP で配列内の指定された値を見つけるには、さまざまな方法があります。PHP の配列検索関数 in_array()、array_key_exists()、array_search() を使用して、要素が配列内にあるかどうかを見つける方法を紹介します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。