Mais si le tableau est relativement grand, les performances diminueront et le temps d'exécution sera plus long. Donc, si vous souhaitez optimiser pour les grands tableaux, voici deux méthodes (toutes deux implémentées via des fonctions personnalisées) :
1. Retournez la clé et la valeur du tableau, et utilisez isset pour déterminer si la clé existe dans le tableau/** * in_array is too slow when array is large */ public static function inArray($item, $array) { $flipArray = array_flip($array); return isset($flipArray[$item]); }
isset() ne retournera pas TRUE pour les valeurs NULL dans le tableau, mais array_key_exists() le fera.
<?php $search_array = array('first' => null, 'second' => 4); // returns false isset($search_array['first']); // returns true array_key_exists('first', $search_array); ?>
/** * in_array is too slow when array is large */ public static function inArray($item, $array) { $str = implode(',', $array); $str = ',' . $str . ','; $item = ',' . $item . ','; return false !== strpos($item, $str) ? true : false; }