PHP

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

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

PHPの学習におすすめ参考書
気づけばプロ並みPHP 改訂版–ゼロから作れる人になる!

本書情報
出版社リックテレコム
著者谷藤 賢一
発売日2017/3/6
ページ数331ページ
レビュー
(Amazon)
(168件)
先輩くん
先輩くん
Amazon Kindle Unlimitedに登録すると、月額980円で読み放題だからオススメだよ!
後輩ちゃん
後輩ちゃん
初回30日間は無料だから、まだ登録したことのない人はぜひ試してみてね!

綺麗なコードが書けるようになる!
リーダブルコード-より良いコードを書くためのシンプルで実践的なテクニック

本書情報
出版社オライリージャパン
著者Dustin Boswell / Trevor Foucher
発売日2012/6/23
ページ数260ページ
レビュー
(Amazon)
(620件)
先輩くん
先輩くん
より良いコードを書きたい人におすすめの本だよ!
後輩ちゃん
後輩ちゃん
10以上前の書籍ですが、内容は今でも役に立つものばかりです!

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アクセスランキング にほんブログ村