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" est disponible. Il vous permettra de recevoir chaque semaine un kata de code directement dans votre boîte mail, ainsi que des aides à la réalisation, des vidéos explicatives et des défis supplémentaires.