array_search和in_array都可以用來查找值是否存在與數組中,顧名思義,一個是搜尋數組,一個是判斷是否在數組,array_search和in_array有什麼區別呢?以及性能上有什麼差異?
in_array用法
pse: collapse; background-color: rgb(249, 249, 249); -webkit-text-stroke-width: 0px;">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語法
再如:
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返回位置,可以直接存放到需要標記位置的數組中。