Heim > Backend-Entwicklung > PHP-Tutorial > Zusammenfassung der PHP-Array-Funktion array_key_exists

Zusammenfassung der PHP-Array-Funktion array_key_exists

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-07-29 09:10:16
Original
1119 Leute haben es durchsucht

array_key_exists()-Funktion bestimmt, ob der angegebene Schlüssel in einem Array vorhanden ist. Wenn der Schlüssel vorhanden ist, gibt sie true zurück, andernfalls gibt sie false zurück

array_key_exists(key,array);

Schlüssel: erforderlich. Geben Sie den Schlüsselnamen an
Array: erforderlich. Gibt das Eingabearray an

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

Nach dem Login kopieren

Ausgabe: Schlüssel existiert!

Warum ist array_key_exists schneller als in_array?

Array_key_exists und in_array fragen unterschiedliche Dinge ab, oder?
array_key_exists bestimmt, ob es einen Schlüsselwert gibt
array_key_exists(a,arr)->if(isset(arr[a])) ist wahr

Und in_array muss den Wert durchlaufen, bevor es aus der Schleife springt

Frage:
Ist der Index des Arrays eine separate Speichereinheit, und das ist sie auch optimiert, array_key_exists Die Zeitkomplexität ist o(1) und in_array ist o(n) ??

Folgeantwort:
In Bezug auf die Komplexität ist dies der Fall

array_key_exists besteht darin, einen bestimmten Wert zu beurteilen. Hat jeder Schlüssel einen Wert?

in_array Wenn Sie einmal durchlaufen möchten, um festzustellen, ob sie gleich sind und die Konstruktion nicht kennen, müssen Sie durchlaufen

Der Unterschied zwischen isset und array_key_exists in PHP

1 Für Array-Werte ist die Beurteilung unterschiedlich, denn der Wert ist null oder „falsch“, isset gibt „false“ zurück, array_key_exists gibt „true“ zurück; 🎜>2. Die Ausführungseffizienz ist unterschiedlich, isset ist ein integrierter Operator, array_key_exists ist eine in PHP integrierte Funktion, isset ist schneller. Bitte beachten Sie: PHP-Funktionsimplementierungsprinzip und Leistungsanalyse

3. Wenn Sie isset verwenden, um auf einen nicht vorhandenen

Index

-Array-Wert zuzugreifen, wird keine E_NOTICE-PHP-Fehlermeldung 4.array_key_exists ruft get_defined_vars auf, um festzustellen, ob die Array-Variable vorhanden ist. Isset wird nicht verwendet.

Testcode:

Das Obige ist eine Zusammenfassung der PHP-Array-Funktion array_key_exists, einschließlich der Indizierung. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

<&#63;php
function
microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
$test_arr['aa']='dd';
$test_arr['bb']='';
$test_arr['cc']=NULL;
$test_arr['dd']=false;
$test_arr= array('aa'=>'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";
Nach dem Login kopieren

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage