【PHP】 배열에 값이 존재하는지 조사하는 array_search() 함수. 「!==」가 포인트

6923 단어 array_searchPHP배열

배열에서 특정 키워드를 검색했습니다 ~ ~ 예! →array_search()를 사용합시다.



array_search() 함수는, 지정된 값이 존재했을 경우, 최초로 발견한 요소의 첨자를 돌려줍니다. 존재하지 않으면 false를 반환합니다.

다만, if문으로 array_search() 함수를 사용하는 경우에는, 주의해야 할 일이 있습니다. 요소의 첨자가 0이면 (배열의 첫 번째 요소 인 경우) if 문에서 '0'은 false를 반환하므로 올바른 결과를 얻을 수 없습니다. 그래서 다음과 같이 씁니다.
$data 배열에서 $keyword 키워드를 검색하려면 !== 를 사용하여 다음과 같은 if 문을 작성하십시오.
$data = array('aaa','bbb','ccc','ddd','eee','fff','ggg');
$keyword = 'ddd';
$index = array_search($keyword,$data);
if ($index !== false) {
    echo $index;
} else {
    echo "false";
}

「어째서, array_search() 함수로 if문을 사용할 때는, 이런 쓰는 방법을 한다」라고 템플리화하면 좋을 것입니다.

이하 코드 전문입니다. 참고 문헌은 "PHP 역방향 레시피"입니다.

search_array.php

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title>配列に値があるか調べる(array_search)</title>
    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
</head>
<body>
<?php 

// まずは任意の配列を定義
$data = array('aaa','bbb','ccc','ddd','eee','fff','ggg');
// 検索したいキーワードを定義しておく
$keyword = 'ddd';

echo "<p>配列:";
// まずは配列の中身を普通に書き出してみる
print_r($data);
echo "</p>";
// 配列を検索してみる
// 出力結果「検索する値:ddd」
echo "<p>検索する値:".$keyword."</p>";
echo "<ul>";
echo "<li>in_array関数の結果";
// 配列の中にまずはキーワードが含まれているかどうか調べる
// ->in_array()関数
// $dataの中に$keywordがあったらtrue
if (in_array($keyword,$data)) {
    echo "true";
} else {
    echo "false";

}
echo "</li>";

echo "<li>array_search()関数の結果:";
// array_search()->指定した値が存在した場合、最初に見つけた要素の添字を返す。存在しなかった場合にはfalseを返す。
// 「最初に見つけた要素の添字」->配列の最初の添字は0.
// if文では、0はfalseと同義とみなされてしまう。
$index = array_search($keyword,$data);
// そこで以下のように書きます。
// !== -> 値が等しくないか、同じ型ではない
if ($index !== false) {
    echo $index;
} else {
    echo "false";
}
echo "</li>";
echo "</ul>";

?>
</body>
</html>

출력 결과입니다↓


참고문헌



PHP 역방향 레시피

현장에서는 이상입니다. 오시 노부.

좋은 웹페이지 즐겨찾기