array_search和in_array都可以用來查找值是否存在與數(shù)組中,顧名思義,一個是搜尋數(shù)組,一個是判斷是否在數(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;
第一個參數(shù)是要查找的值,第二個參數(shù)是數(shù)組,它返回的是查找到的值的“鍵”。而in_array只能判斷是否存在,返回布爾值。在效率上in_array與array_search效率幾乎相同,in_array僅返回真?zhèn)?,array_search同時返回
array_search語法
參數(shù) | 描述 |
value | 必需。規(guī)定在數(shù)組中搜索的值。 |
array | 必需。被搜索的數(shù)組。 |
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返回位置,可以直接存放到需要標(biāo)記位置的數(shù)組中。
更多信息請查看IT技術(shù)專欄