首頁 > 後端開發 > php教程 > PHP數組操作之匹配搜尋數組中的元素和鍵名

PHP數組操作之匹配搜尋數組中的元素和鍵名

WBOY
發布: 2023-04-10 19:22:01
原創
4529 人瀏覽過

在之前的文章《PHP中怎麼去比較字串? (實例詳解)》中我們詳細的介紹了PHP中透過什麼樣的方法能夠比較兩個字串的相關知識,本篇文章我們來看一下PHP中的陣列操作的相關知識,希望對大家有幫助!

PHP數組操作之匹配搜尋數組中的元素和鍵名

在先前的文章中我們了解了可以透過strcmp()函數和strcasecmp() 函數來進行字串的比較,字串是PHP中的重要資料類型之一,PHP開發過程中還有很重要的資料類型就是數組,我們了解了可以對字串進行比較、定位和替換等等的操作,那麼對於同樣重要的陣列我們有什麼常用的操作嗎?

在之前的文章《PHP中怎樣去定位字串與陣列中的元素? 》我們講到了怎樣去搜尋定位字串與數組中的元素,其中講到可以透過preg_grep()函數來對數組元素進行定位搜索,下面我們就來看更多的方法去尋找和搜尋數組中的元素。

<strong><span style="font-size: 20px;">in_array</span></strong>#()函數-符合陣列元素傳回布林

在PHP中我們可以透過in_array()函數來對數組中的元素進行搜索,in_array()函數的基本語法格式如下:

in_array(search,array,type)
登入後複製

其中要注意的是:參數search表示的是我們需要在陣列中搜尋的值,參數array表示的是我們需要搜尋的陣列,參數type是一個可選參數,如果參數的取值是true的話,在搜尋的時候就會檢查搜尋的資料和所搜尋的陣列資料型態是否形同。

如果在陣列中找到了我們需要搜的的值,函數傳回的結果就是true;如果沒有在陣列中找到我們需要搜尋到的值,傳回的結果就是false

接下來我們透過簡單的範例來看PHP中in_array()函數的應用,範例如下:

<?php
$people = array("Bill", "bob", "Mark", "coc");
if (in_array("23", $people, TRUE))
  {
  echo "在数组中";
  }
else
  {
  echo "不在数组中";
  }
  echo &#39;<br/>&#39;;
if (in_array("Mark",$people, TRUE))
  {
  echo "在数组中";
  }
else
  {
  echo "不在数组中";
  }
  echo &#39;<br/>&#39;;
if (in_array("bill",$people, TRUE))
  {
  echo "在数组中";
  }
else
  {
  echo "不在数组中";
  }
?>
登入後複製

輸出結果:

PHP數組操作之匹配搜尋數組中的元素和鍵名

在上述範例中,我們第三次匹配搜尋的時候,我們是用來小寫,並沒有匹配成功,其中需要注意的是如果我們需要搜尋的內容是個字串的話,並且參數type的設定為true,那麼進行搜尋的時候就會區分大小寫。

<strong><span style="max-width:90%">array_search</span></strong>#() 函數-符合陣列元素傳回鍵名

上文中的in_array函數知識單純地搜尋判斷數組中有沒有我們需要進行找的元素,還沒辦法進行定位,想要準確的進行定位找到的話呢,在PHP中我們可以透過array_search() 函數,該函數可以搜尋元素,傳回的結果是我們搜尋元素的鍵名。

array_search()函數的基本語法格式如下:

array_search(value,array,strict)
登入後複製

其中需要注意的是:參數value是我們需要搜尋的鍵值,參數array就是我們需要進行搜尋的數組,參數strict是一個可選參數,該參數預設是flase,如果參數設定為true的話,在搜尋的時候就會檢查搜尋的資料和所搜尋的陣列資料型態是否形同。

如果在陣列中搜尋到了對應的鍵值,傳回的結果就是這個鍵值對應的鍵名;如果沒有符合的話,傳回的結果就是flase;其中需要注意一下,如果匹配到的鍵值不只一個,這時候回傳的結果就是第一次匹配到鍵值的鍵名。

下面我們透過範例來看array_search函數的使用,範例如下:

<?php
$a=array("a"=>"5","b"=>5,"c"=>"5");
echo array_search(5,$a,true) . &#39;<br/>&#39;;
$array = array(0 => &#39;blue&#39;, 1 => &#39;red&#39;, 2 => &#39;green&#39;, 3 => &#39;red&#39;);
echo array_search(&#39;green&#39;,$array,true);
?>
登入後複製

輸出結果:

PHP數組操作之匹配搜尋數組中的元素和鍵名

其中要注意的是,當參數設定為true的時候,在陣列進行搜尋比對的時候,不同的資料形式搜尋的結果是不同的。

<strong><span style="max-width:90%">array_key_exists</span></strong>#()函數-符合陣列鍵名稱傳回布林

#在上文中我們透過array_search函數能夠透過搜尋鍵值輸出搜尋元素的鍵名,在PHP中也可以直接搜尋鍵名。那就是透過PHP中的array_key_exists函數。

array_key_exists函數的基本語法格式如下:

array_key_exists(key,array)
登入後複製

其中需要注意的是:参数key表示的就是我们需要所搜的键名,参数array标识的就是我们需要进行搜索的数组,

通过array_key_exists函数只能够判断一维数组中的键名不能判断多维数组中数组内的键名,如果在数组中匹配到了指定的键名,该函数返回的结果就是true,如果数组中没有匹配到。返回的结果就是flase。

下面我们通过示例来看一下array_key_exists函数的使用,示例如下:

<?php
$people = array("Bill", "a"=>"bob", "Mark", "coc");
if (array_key_exists(0, $people,))
  {
  echo "键名存在";
  }
else
  {
  echo "键名不存在";
  }
  echo &#39;<br/>&#39;;
if (array_key_exists("a",$people,))
  {
  echo "键名存在";
  }
else
  {
  echo "键名不存在";
  }
  echo &#39;<br/>&#39;;
if (array_key_exists("coc",$people,))
  {
  echo "键名存在";
  }
else
  {
  echo "键名不存在";
  }
?>
登入後複製

输出结果:

PHP數組操作之匹配搜尋數組中的元素和鍵名

由此我们便通过array_key_exists来进行在一个数组中找到一个指定的键。

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

以上是PHP數組操作之匹配搜尋數組中的元素和鍵名的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板