真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

array_key_exists()函數(shù)怎么在php中使用-創(chuàng)新互聯(lián)

array_key_exists()函數(shù)怎么在php中使用?相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

創(chuàng)新互聯(lián)建站是一家專(zhuān)業(yè)提供阿拉爾企業(yè)網(wǎng)站建設(shè),專(zhuān)注與成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站、HTML5建站、小程序制作等業(yè)務(wù)。10年已為阿拉爾眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專(zhuān)業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。

array_key_exists()函數(shù)判斷某個(gè)數(shù)組中是否存在指定的key,如果key存在,則返回true,否則返回flase


array_key_exists(key,array);


key:必需。規(guī)定鍵名
array:必需。規(guī)定輸入的數(shù)組

'Dog','b'=>'Cat');
if(array_key_exists('a',$a)){
  echo 'Key exists!';
} else{
  echo 'Key does not exist!';
}
?>

輸出:Key exists!

array_key_exists為什么比in_array快?

array_key_exists 和 in_array 查詢(xún)的東西都不一樣吧
array_key_exists 判斷是否有鍵值
array_key_exists(a,arr)->if(isset(arr[a]))就是true

而in_array 需要去遍歷值 遍歷到了才跳出循環(huán)

追問(wèn):
是不是數(shù)組的索引有單獨(dú)的存儲(chǔ)單元,而且優(yōu)化過(guò),array_key_exists的時(shí)間復(fù)雜度是o(1), 而in_array是o(n) ??

追答:
重復(fù)雜度來(lái)說(shuō)是這樣


array_key_exists  是判斷某個(gè)鍵有沒(méi)有值

in_array  要遍歷一次 獲取是否相同 不知道建的情況下必須遍歷

PHP中isset與array_key_exists的區(qū)別

1.對(duì)于數(shù)組值的判斷不同,對(duì)于值為null或''或false,isset返回false,array_key_exists返回true;

2. 執(zhí)行效率不同,isset是內(nèi)建運(yùn)算符,array_key_exists是php內(nèi)置函數(shù),isset要快一些。請(qǐng)參考:PHP 函數(shù)實(shí)現(xiàn)原理及性能分析

3.當(dāng)用isset訪(fǎng)問(wèn)一個(gè)不存在索引數(shù)組值時(shí),不會(huì)引起一個(gè)E_NOTICE的php錯(cuò)誤消息;

4.array_key_exists 會(huì)調(diào)用get_defined_vars判斷數(shù)組變量是否存在,isset不用;

測(cè)試代碼:

'dd','bb'=>'','cc'=>null,'dd'=>false);
echo "isset aa is ";var_dump(isset($test_arr['aa']));echo "n";
echo "isset bb is ";var_dump(isset($test_arr['bb']));echo "n";
echo "isset cc is ";var_dump(isset($test_arr['cc']));echo "n";
echo "isset dd is ";var_dump(isset($test_arr['cc']));echo "n";
echo "isset none is ";var_dump(isset($test_arr['none']));echo "n";
echo "key_exist aa is ";var_dump(array_key_exists('aa',$test_arr));echo "n";
echo "key_exist bb is ";var_dump(array_key_exists('bb',$test_arr));echo "n";
echo "key_exist cc is ";var_dump(array_key_exists('cc',$test_arr));echo "n";
echo "key_exist dd is ";var_dump(array_key_exists('dd',$test_arr));echo "n";
echo "key_exist none is ";var_dump(array_key_exists('none',$test_arr));echo "n";
$time_start = microtime_float();
for($i=0;$i<100;$i++){
isset($test_arr['aa']);
}
$time_end = microtime_float();
$time = $time_end - $time_start;
echo "isset 100 is $timen";
for($i=0;$i<10000;$i++){
isset($test_arr['aa']);
}
$time_end = microtime_float();
$time = $time_end - $time_start;
echo "isset 10000 is $timen";
for($i=0;$i<1000000;$i++){
isset($test_arr['aa']);
}
$time_end = microtime_float();
$time = $time_end - $time_start;
echo "isset 1000000 is $timen";
//++++++++++++++++++++++++++++++
$time_start = microtime_float();
for($i=0;$i<100;$i++){
array_key_exists('aa',$test_arr);
}
$time_end = microtime_float();
$time = $time_end - $time_start;
echo "array_key_exists 100 is $timen";
for($i=0;$i<10000;$i++){
array_key_exists('aa',$test_arr);
}
$time_end = microtime_float();
$time = $time_end - $time_start;
echo "array_key_exists 10000 is $timen";
for($i=0;$i<1000000;$i++){
array_key_exists('aa',$test_arr);
}
$time_end = microtime_float();
$time = $time_end - $time_start;
echo "array_key_exists 1000000 is $timen";

看完上述內(nèi)容,你們掌握array_key_exists()函數(shù)怎么在php中使用的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


分享標(biāo)題:array_key_exists()函數(shù)怎么在php中使用-創(chuàng)新互聯(lián)
當(dāng)前網(wǎng)址:http://weahome.cn/article/doghcd.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部