php中array_search和in_array有什么區(qū)別

字號(hào):


    array_search和in_array都可以用來查找值是否存在與數(shù)組中,顧名思義,一個(gè)是搜尋數(shù)組,一個(gè)是判斷是否在數(shù)組,array_search和in_array有什么區(qū)別呢?以及性能上有什么差異?
    in_array用法
    pse: collapse; background-color: rgb(249, 249, 249); -webkit-text-stroke-width: 0px;">
    
參數(shù) 描述
value 必需。規(guī)定要在數(shù)組搜索的值。
array 必需。規(guī)定要搜索的數(shù)組。
type 可選。如果設(shè)置該參數(shù)為 true,則檢查搜索的數(shù)據(jù)與數(shù)組的值的類型是否相同。

    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;
    第一個(gè)參數(shù)是要查找的值,第二個(gè)參數(shù)是數(shù)組,它返回的是查找到的值的“鍵”。而in_array只能判斷是否存在,返回布爾值。在效率上in_array與array_search效率幾乎相同,in_array僅返回真?zhèn)?,array_search同時(shí)返回
    array_search語法
    
參數(shù) 描述
value 必需。規(guī)定在數(shù)組中搜索的值。
array 必需。被搜索的數(shù)組。
strict 可選??赡艿闹担?
  • true
  • false - 默認(rèn)如果值設(shè)置為 true,還將在數(shù)組中檢查給定值的類型。(參見例子 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返回位置,可以直接存放到需要標(biāo)記位置的數(shù)組中。