【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 역방향 레시피
현장에서는 이상입니다. 오시 노부.
Reference
이 문제에 관하여(【PHP】 배열에 값이 존재하는지 조사하는 array_search() 함수. 「!==」가 포인트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/degunosasuke/items/77c4dfa6d1b51057faa8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)