ホームページ >バックエンド開発 >PHPチュートリアル >PHP が多次元配列に特定の値が存在するかどうかを判断する_PHP チュートリアル
今日は、探している要素の値が配列内に存在するかどうかを判断する方法を紹介します。ここでは、1次元データの場合は in_array だけですが、多次元データの場合は少し複雑になります。
まず、in_array が配列内に特定の値が存在するかどうかをどのようにチェックするかを理解しましょう
コードは次のとおりです | コードをコピー |
$os = array("Mac", "NT", "Irix", "Linux"); エコー「(1)」;
$a = 配列('1.10', 12.4, 1.13); if (in_array('12.4', $a, true)) {//in_array() 厳密な型チェック
$a = array(array('p', 'h'), array('p', 'r'), 'o'); if (in_array(array('p', 'h'), $a)) { } if (in_array(array('f', 'i'), $a)) {//in_array() のニードルとして配列を使用します
プログラムの実行結果は次のようになります: (1)イリックスを手に入れました (2)厳密なチェックで1.13が見つかりました (3)「ph」が見つかりました「o」が見つかりました |
上記はすべて 1 次元配列です。多次元データに特定の値があるかどうかを見てみましょう。
配列('a', 'b')、
コードは次のとおりです
コードをコピー
$arr = 配列(
配列('c', 'd')
);
in_array('a', $arr); // この時の戻り値は常に false です
deep_in_array('a', $arr); // 現時点では true の値を返します
関数 deep_in_array($value, $array) {
foreach($array as $item) {
If(!is_array($item)) {
If ($item == $value) {
true を返します。
続く;
If(in_array($value, $item)) {
true を返す;
} else if(deep_in_array($value, $item)) {
true を返す;
}
}
false を返します。
}
このメソッドは、PHP ヘルプ マニュアルの in_array メソッドの詳細説明ページにあるコメントに記載されています。何もすることがない場合は、ヘルプ マニュアルをよく読んでください。特に、多くの人の古典的なメソッドが集められている最後にある古典的なコメントをよく読んでください。