Récupérer la première et la dernière clé d'un tableau
Avant php 7.0 (😱), pour récupérer la première et la dernière clé d'un tableau, vous pouvez écrire :
$var = [
"a" => "John",
"b" => "Jane",
"c" => "Baby",
];
$first = isset(array_keys($var)[0]) ? array_keys($var)[0] : null;
// $first = "a"
$last = isset(array_keys($var)[count($var) - 1]) ? array_keys($var)[count($var) - 1] : null;
// $last = "c"
À partir de php 7.0, vous pouvez largement simplifier en écrivant :
$var = [
"a" => "John",
"b" => "Jane",
"c" => "Baby",
];
$first = array_keys($var)[0] ?? null;
// $first = "a"
$last = array_keys($var)[count($var) - 1] ?? null;
// $last = "c"
Mais depuis PHP 7.3, il existe deux nouvelles méthodes pour aller droit au but : array_key_first
et array_key_last
$var = [
"a" => "John",
"b" => "Jane",
"c" => "Baby",
];
$first = array_key_first($var);
// $first = "a"
$last = array_key_last($var);
// $last = "c"
Ces deux méthodes retournent la clé si le tableau n'est pas vide, null
sinon.
null
?Savez-vous qu'en PHP, vous pouvez déclarer par exemple
$var = [
null => "John",
"b" => "Jane",
"c" => "Baby",
];
Dans cet exemple, la méthode array_key_first
retournera non pas null
mais une chaîne vide ""
. D'ailleurs la valeur John
sera affichée si vous faites echo $var[""]
!
Et pour aller encore plus loin, si vous écrivez :
$var = [
null => "John",
"b" => "Jane",
"" => "Baby",
];
finalement le tableau ne contiendra que deux valeurs :
$var = [
null => "Baby",
"b" => "Jane",
];
Pour résumer : éviter les valeurs null
et les chaînes vides dans les clés de vos tableaux (sauf si vous savez vraiment ce que vous faites) !
Mon programme "S'entraîner pour progresser en PHP" va bientôt ouvrir ses portes. Il te permettra de recevoir chaque semaine un kata de code directement dans ta boîte mail, ainsi que des aides à la réalisation, des vidéos explicatives, voire des live coding et de la review.