萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> php中array_search和in_array有什麼區別

php中array_search和in_array有什麼區別

在php中array_search和in_array函數都是用來查找數組中的值了,那麼這們兩他們的區別是什麼呢?下面小編為各位介紹一下吧.

array_search和in_array都可以用來查找值是否存在與數組中,顧名思義,一個是搜尋數組,一個是判斷是否在數組,array_search和in_array有什麼區別呢?以及性能上有什麼差異?

in_array用法

pse: collapse; background-color: rgb(249, 249, 249); -webkit-text-stroke-width: 0px;"> 參數 描述 value 必需。規定要在數組搜索的值。 array 必需。規定要搜索的數組。 type 可選。如果設置該參數為 true,則檢查搜索的數據與數組的值的類型是否相同。

array_search示例:


$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
 
$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array);   // $key = 1;
第一個參數是要查找的值,第二個參數是數組,它返回的是查找到的值的“鍵”。而in_array只能判斷是否存在,返回布爾值。在效率上in_array與array_search效率幾乎相同,in_array僅返回真偽,array_search同時返回

array_search語法

參數 描述 value 必需。規定在數組中搜索的值。 array 必需。被搜索的數組。 strict 可選。可能的值:

  • true
  • false - 默認
如果值設置為 true,還將在數組中檢查給定值的類型。(參見例子 2)

再如:

public function add_rewrite_tag( $tag, $regex, $query ) {
 $position = array_search( $tag, $this->rewritecode );
 if ( false !== $position && null !== $position ) {
  $this->rewritereplace[ $position ] = $regex;
  $this->queryreplace[ $position ] = $query;
 } else {
  $this->rewritecode[] = $tag;
  $this->rewritereplace[] = $regex;
  $this->queryreplace[] = $query;
 }
}

利用array_search返回位置,可以直接存放到需要標記位置的數組中。

copyright © 萬盛學電腦網 all rights reserved