php 指定した配列の値のインデックス番号を取得する
phpで、array_searchを使用して、指定した配列の値のインデックス番号を取得するサンプルコードを記述してます。phpのバージョンは8.0です。
環境
- OS CentOS Linux release 8.0.1905 (Core)
- php 8.0.0
- nginx 1.14.1
array_search使い方
array_searchを使用すれば、指定した配列の値のインデックス番号を取得することが可能です。
array_search(値, 配列);
// 存在すればインデックス番号を返し、しなければFALSEを返す
以下は、指定した配列の値のインデックス番号を取得するサンプルコードとなります。
<?php
$arr = [1, 2, 3, 4, 5];
$result = array_search(1, $arr);
var_dump($result); // int(0)
$result = array_search(3, $arr);
var_dump($result); // int(2)
$result = array_search(6, $arr);
var_dump($result); // bool(false)
ただし、数字「1.0」や文字列の「1 , 1.0」も存在するとインデックス番号を返いします。
<?php
$arr = [1, 2, 3, 4, 5];
$result = array_search(1, $arr);
var_dump($result); // int(0)
$result = array_search(1.0, $arr);
var_dump($result); // int(0)
$result = array_search("1", $arr);
var_dump($result); // int(0)
$result = array_search("1.0", $arr);
var_dump($result); // int(0)
falseにしたい場合は、第三引数に「true」を指定します。
<?php
$arr = [1, 2, 3, 4, 5];
$result = array_search(1, $arr, true);
var_dump($result); // int(0)
$result = array_search(1.0, $arr, true);
var_dump($result); // bool(false)
$result = array_search("1", $arr, true);
var_dump($result); // bool(false)
$result = array_search("1.0", $arr, true);
var_dump($result); // bool(false)
また条件式で使用すると、インデックス番号「0」が「false」と判定されてしまうので、
<?php
$arr = [1, 2, 3, 4, 5];
if (array_search(1, $arr)) {
echo 'あります';
}else{
echo 'ない';
}
// ない
以下のように「!== false」を使用して判定する必要があります。
<?php
$arr = [1, 2, 3, 4, 5];
if (array_search(1, $arr) !== false) {
echo 'あります';
} else {
echo 'ない';
}
// あります
if (array_search(2, $arr) !== false) {
echo 'あります';
} else {
echo 'ない';
}
// あります
if (array_search(6, $arr) !== false) {
echo 'あります';
} else {
echo 'ない';
}
// ない
-
前の記事
jquery onを使ってイベントをbind(バインド)する 2020.12.14
-
次の記事
Ubuntu20.10 MongoDBをアンインストールする 2020.12.14
コメントを書く