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.

Et que se passe-t-il si la première ou la dernière clé de votre tableau à la valeur 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) !

Tu aimerais progresser en PHP ? Mais tu ne sais pas comment t'y prendre ?

S'entraîner pour progresser en PHP

Mon programme "S'entraîner pour progresser en PHP" a ouvert 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.

Si tu es intéressé(e), clique sur le bouton ci-dessous pour avoir plus d'informations et nous rejoindre !