PHP 8.5.6 Released!

array_find

(PHP 8 >= 8.4.0)

array_findBir geriçağırım işlevini sağlayan ilk elemanı döndürür

Açıklama

array_find(array $dizi, callable $işlev): mixed

array_find(), belirtilen işlev geriçağırım işlevinin true döndürdüğü dizi dizisinin ilk elemanının değerini döndürür. Eşleşen bir eleman bulunamazsa işlev null döndürür.

Bağımsız Değişkenler

dizi
Aranacak array.
işlev

Her elemanı denetlemek için çağrılacak geriçağırım işlevi. Aşağıdaki biçimde olmalıdır:

işlev(mixed $değer, mixed $anahtar): bool
Bu işlev true dönerse, değer array_find() tarafından döndürülür ve geriçağırım sonraki elemanlar için artık çağrılmaz.

Dönen Değerler

işlev geriçağırım işlevinin true döndürdüğü ilk elemanın değerini döndürür. Eşleşen bir eleman bulunamazsa işlev null döndürür.

Örnekler

Örnek 1 array_find() örneği

<?php
$array
= [
'a' => 'dog',
'b' => 'cat',
'c' => 'cow',
'd' => 'duck',
'e' => 'goose',
'f' => 'elephant'
];

// İsmi 4 karakterden uzun ilk hayvanı bulur.
var_dump(array_find($array, function (string $value) {
return
strlen($value) > 4;
}));

// İsmi f ile başlayan ilk hayvanı bulur.
var_dump(array_find($array, function (string $value) {
return
str_starts_with($value, 'f');
}));

// Anahtarın hayvan isminin ilk harfi olduğu ilk hayvanı bulur.
var_dump(array_find($array, function (string $value, $key) {
return
$value[0] === $key;
}));

// Anahtarı bir düzenli ifadeyle eşleşen ilk hayvanı bulur.
var_dump(array_find($array, function ($value, $key) {
return
preg_match('/^([a-f])$/', $key);
}));
?>

Yukarıdaki örneğin çıktısı:

string(5) "goose"
NULL
string(3) "cow"
string(3) "dog"

Ayrıca Bakınız

  • array_find_key() - Bir geriçağırım işlevini sağlayan ilk elemanın anahtarını döndürür
  • array_all() - Bir array elemanlarının tümünün bir geriçağırım işlevini sağlayıp sağlamadığını sınar
  • array_any() - Bir array elemanlarından en az birinin bir geriçağırım işlevini sağlayıp sağlamadığını sınar
  • array_filter() - Bir dizinin elemanlarını bir geriçağırım işleviyle süzgeçten geçirir
  • array_reduce() - Bir geriçağırım işlevini dizinin bütün elemanlarına tek tek uygulayıp sonucu döndürür
add a note

User Contributed Notes 2 notes

up
14
mail at nititech dot de
1 year ago
A simple fallback For older PHP versions, that do not have array_find:

<?php

/**
 * Porting of PHP 8.4 function
 *
 * @template TValue of mixed
 * @template TKey of array-key
 *
 * @param array<TKey, TValue> $array
 * @param callable(TValue $value, TKey $key): bool $callback
 * @return ?TValue
 *
 * @see https://www.php.net/manual/en/function.array-find.php
 */
function array_find(array $array, callable $callback): mixed
{
    foreach ($array as $key => $value) {
        if ($callback($value, $key)) {
            return $value;
        }
    }

    return null;
}
?>
up
0
harl at gmail dot com
5 months ago
Note that if null satisfies the callback then there is no way to tell if null was returned because it was found in the array or if it was because nothing satisfying the callback was found.

In this case, it'll be more robust to use array_find_key; null can't be a key, so if that's what you get it must be because the search failed to find a match.

Obviously, you'd then use the array key to look up the corresponding value in the array.
To Top