php在陣列中搜尋某個鍵值並傳回對應的鍵名的函數array_search()

黄舟
發布: 2023-03-17 08:28:01
原創
7851 人瀏覽過

實例

在陣列中搜尋鍵值"red",並傳回它的鍵名:

<?php
$a=array("a"=>"red","b"=>"green","c"=>"blue");
echo array_search("red",$a);
?>
登入後複製

定義與用法

array_search() 函數在陣列中搜尋某個鍵值,並傳回對應的鍵名。

語法

array_search(value,array,strict)
登入後複製
參數#描述
##必需。規定在數組中搜尋的鍵值。
array必要。規定被搜尋的陣列。
strict可選。如果該參數被設定為 TRUE,則函數在陣列中搜尋資料類型和值都一致的元素。可能的值:
  • true

  • false - 預設

如果設定為true,則在陣列中檢查給定值的類型,數字5 和字串 5 是不同的(參見實例2)。

技術細節

# 傳回值:如果在陣列中找到指定的鍵值,則傳回對應的鍵名,否則傳回FALSE。如果在陣列中找到鍵值超過一次,則傳回第一次找到的鍵值所符合的鍵名。
PHP 版本:4.0.5+
#更新日誌如果向函數傳遞無效的參數,函數會傳回NULL(這個適用於自PHP 5.3.0 起的所有的PHP 函數)。

自 PHP 4.2.0 起,如果搜尋失敗,函數傳回 FALSE,而不是 NULL。

更多实例

实例 1

在数组中搜索键值 5,并返回它的键名(注意 ""):

<?php
$a=array("a"=>"5","b"=>5,"c"=>"5");
echo array_search(5,$a,true);
?>
登入後複製

但是array_search一般用到搜索一个数组中符合要求的第一个字符串。如果搜索的字符串在数组中含有多个,使用array_search的话,是 不行的。这时,我们使用array_keys()函数,实现搜索的字符串在数组中含有多个,

看一下如下例子:

$array = array(0 => &#39;blue&#39;, 1 => &#39;red&#39;, 2 => &#39;green&#39;, 3 => &#39;red&#39;); 
$a=array_search( "blue",$array); //将输出$a=0; 
$b=array_search( &#39;red&#39;,$array); //将只会输出$b=1; 
$p = array_keys($array, &#39;red&#39;);//搜索的字符串在数组中含有多个 
if(is_array($p)) {
  foreach($p as $v) { 
    echo $val."出现在".$v . " ";
   }
}else { 
  echo $val."出现在".array_search($val, $array)." ";
}
登入後複製

例二:

$array = array(4,5,7,8,9,10); 
$found = array_search(8, $array); //调用array_search函数并输出查找结果 
if($found){ //如果找到输出键 
echo "已找到,键为".$found; 
}else{ //如果没有找到输出错误信息 
echo "没有找到"; 
}
登入後複製

下面我们来看看in_array函数

采用in_array(value,array,type)

type 可选。如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同。

$arr = array(&#39;可以&#39;,&#39;如何&#39;,&#39;方法&#39;,&#39;知道&#39;,&#39;沒有&#39;,&#39;不要&#39;);
//in_array(value,array,type)
$isin = in_array("如何2",$arr);
if($isin){
  echo "in====".$isin;
}else{
  echo "out====".$isin;
}
登入後複製

以上是php在陣列中搜尋某個鍵值並傳回對應的鍵名的函數array_search()的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!