【Amazon】人気の商品が日替わりで登場!
毎日お得なタイムセール!商品をみる

【PHP】配列の何番目に特定の値があるか確認する方法

本記事では、PHPで配列の何番目に特定の値があるか確認する方法について解説しています。

PHPの学習におすすめ書籍
独習PHP 第4版
総合評価
( 5 )
メリット
  • PHPの基本構文からクラス・データベース連携・セキュリティまで学べる
  • PHPによるWebアプリ開発の基礎・基本テクニックを学べる
楽天ブックス
¥3,740 (2024/05/21 10:58時点 | 楽天市場調べ)
先輩くん

Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!

後輩ちゃん

初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!

全プログラマー必見!
変数名/関数名にもう悩まない!
リーダブルコード
総合評価
( 5 )
メリット
  • 美しいコードが書けるが自然と書けるようになる
  • 他の開発者が理解しやすいコードになる
著:Dustin Boswell, 著:Trevor Foucher, 解説:須藤 功平, 翻訳:角 征典
¥2,640 (2023/07/23 02:48時点 | Amazon調べ)
目次

array_search関数の使い方

配列の何番目に特定の値があるか調べたい時は、array_search関数を使用します。基本的な使い方は以下のとおりです。

$result = array_search($needle, $haystack [, $strict = false]);
構文解説
  • $result:検索したい値を見つけた場合はインデックス番号(添え字)を返し、見つけられなかった場合はfalseを返す。
  • $needle:検索したい値を指定
  • $haystack:対象の配列を指定
  • $strict:等価演算子(==)で比較する場合はfalseを指定し、厳密等価演算子(===)で比較する場合はtrueを指定します。デフォルト値はfalse。(省略可能)

array_search関数を使用したサンプルコードを用意したので、動作確認してみましょう。

<?php
$fruitsArr = ['Apple', 'Banana', 'Strawberry', 'watermelon', 'melon', '1'];

echo array_search('Strawberry', $fruitsArr); // 2
echo array_search('pear', $fruitsArr); // false
echo array_search(1, $fruitsArr); // 5
echo array_search(1, $fruitsArr, true); // false

1つ目のarray_search関数は、検索したい値に「Strawberry」を指定しています。対象の配列にはStrawberryが代入されているため、そのインデックス番号を返しています。

2つ目のarray_search関数は、検索したい値に「pear」を指定しています。対象の配列にはpearは代入されていないため、falseを返しています。

3つ目と4つ目のarray_search関数は、検索したい値は同じですが4つ目の方だけ第三引数にtrueを指定しています。配列に代入されている「’1’」は文字列でarray_search関数の第一引数に指定している「1」は数値なので厳密等価演算子で比較した場合はfalseになります。

もし配列に値が存在するか確認したい時は

もし、配列に値が存在するか確認だけしたい時は、in_array関数を使用することをオススメします。条件式としてarray_search関数を使用してしまうと、もし配列の先頭に検索したい値がヒットした時戻り値としてインデックス番号「0」が返されます。これはfalsyの値になってしまうため、本当は見つけたのにプログラムは値を見つけられなかったと判定してします。

JavaScriptの記事になってしまいますが、truthyとfalsyについての記事を書いているので興味のある方はご覧ください。

ブログランキング・にほんブログ村へ PVアクセスランキング にほんブログ村 FC2 Blog Ranking

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次