NUEVAS FUNCIONES DE BÚSQUEDA DE ARRAYS EN PHP

En PHP 8.4 se incorporarán cuatro nuevas funciones para arrays que son funciones auxiliares para comprobar la existencia de elementos en un array que cumplan una condición específica. Las nuevas funciones son:
  • array_find(): Devuelve el valor del primer elemento del array para el cual la función callback devuelve "true". Si ningún elemento es encontrado, la función devuelve "null".

    $array = [
        'a' => 'dog',
        'b' => 'cat',
        'c' => 'cow',
        'd' => 'duck',
        'e' => 'goose',
        'f' => 'elephant'
    ];
     
    array_find($array, function (string $value) {
        return strlen($value) > 4;
    }); // string(5) "goose"
     
    array_find($array, function (string $value) {
        return str_starts_with($value, 'f');
    }); // null
     
    // Find the first animal where the array key is the first symbol of the animal.
    array_find($array, function (string $value, $key) {
       return $value[0] === $key;
    });
    
  • array_find_key(): Devuelve la clave del primer elemento que valida la función callback.

    $array = [
        'a' => 'dog',
        'b' => 'cat',
        'c' => 'cow',
        'd' => 'duck',
        'e' => 'goose',
        'f' => 'elephant'
    ];
     
    array_find_key($array, function (string $value) {
        return strlen($value) > 4;
    }); // string(1) "e"
     
    array_find_key($array, function (string $value) {
        return str_starts_with($value, 'f');
    }); // null
     
    array_find_key($array, function (string $value, $key) {
       return $value[0] === $key;
    }); // string(1) "c"
    
  • array_any(): Devuelve true, si la función callback devuelve "true" para al menos un elemento. De lo contrario, la función devuelve "false".

    $array = [
        'a' => 'dog',
        'b' => 'cat',
        'c' => 'cow',
        'd' => 'duck',
        'e' => 'goose',
        'f' => 'elephant'
    ];
     
    // Check, if any animal name is longer than 5 letters.
    array_any($array, function (string $value) {
        return strlen($value) > 5;
    }); // bool(true)
     
    // Check, if any animal name is shorter than 3 letters.
    array_any($array, function (string $value) {
        return strlen($value) < 3;
    }); // bool(false)
    
  • array_all(): Devuelve true, si la función de retrollamada callback devuelve "true" para todos los elementos. De lo contrario, la función devuelve "false".

    $array = [
        'a' => 'dog',
        'b' => 'cat',
        'c' => 'cow',
        'd' => 'duck',
        'e' => 'goose',
        'f' => 'elephant'
    ];
    // Check, if all animal names are shorter than 12 letters.
    array_all($array, function (string $value) {
        return strlen($value) < 12;
    }); // bool(true)
     
    // Check, if all animal names are longer than 5 letters.
    array_all($array, function (string $value) {
        return strlen($value) > 5;
    }); // bool(false)