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 可選。可能的值:再如:
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返回位置,可以直接存放到需要標記位置的數組中。