PHPのarray_all関数の使い方!配列のすべての値が同じか確認する

PHPのarray_all関数は、配列のすべての要素が指定された条件(コールバック関数)を満たすかどうかを判定します。
PHPのバージョン8.4から使用できるようになった関数です。

この関数を使うと、配列内のすべての要素を効率的にチェックし、条件を満たすかどうかを調べることができます。
配列内のデータの整合性を確認したり、特定の条件を満たすデータのみを処理したりする場合に便利です。

array_all関数の基本的な使い方

array_all関数は、配列のすべての要素が指定された条件(コールバック関数)を満たす場合にtrueを返し、それ以外の場合はfalseを返します。
基本的な構文は以下のとおりです。

array_all(array $array, callable $callback): bool
  • $array: チェックする配列。
    • 任意の型の要素を持つ配列を指定します。
  • $callback: 各要素に対して実行されるコールバック関数。
    • 各要素を引数として受け取り、真偽値を返す関数を指定します。

array_all関数の戻り値

array_all関数の戻り値は、以下のいずれかです。

  • true: 配列のすべての要素がコールバック関数でtrueを返した場合。
  • false: 配列のいずれかの要素がコールバック関数でfalseを返した場合。

配列のすべての要素が条件にあうか判定する

配列のすべての要素が条件にあうか確認してみます。

<?php
$array1 = [1, 2, 3, 4, 5];
$array2 = [1, 2, 3, 4, -5];

$result1 = array_all($array1, function ($value) {
    return $value > 0;
});

$result2 = array_all($array2, function ($value) {
    return $value > 0;
});

var_dump($result1); // 結果:bool(true)
var_dump($result2); // 結果:bool(false)
?>

最初にarray1array2の2つの配列を作成しました。

そしてarray_all関数を使って、配列$array1$array2のすべての要素が正の数であるかどうかを判定しています。
第1引数に確認したい配列を渡して、第2引数にチェックするための無名関数を書いています。

$value変数には、配列の値がひとつづつとりだされて、内部のチェックロジックを通ります。
$array1のすべての要素は正の数であるため、すべてtrueとなりarray_all関数はtrueを返します。
一方、$array2には最後に負の数が含まれているため、array_all関数はfalseを返します。

連想配列のキーを条件に判定する

連想配列のキーを条件に判定するサンプルコードです。

<?php
$array = [
    'apple' => 100,
    'banana' => 200,
    'orange' => 300,
];

$result = array_all($array, function ($value, $key) {
    return strlen($key) > 4;
});

var_dump($result); // 結果:bool(true)
?>

最初に$array変数に連想配列を作成しています。
そして、連想配列$arrayのすべてのキーが4文字より大きいかどうかを判定しています。

array_all関数に渡している無名関数の第2引数に$keyを指定していますが、これが連想配列のキーになります。
そして、判定ロジックではstrlen関数を使ってキーの文字数を取得し、4より大きいかどうかをチェックしています。

配列$arrayのすべてのキーは4文字より大きいため、array_all関数はtrueを返します。
このように、array_all関数のコールバック関数では、値だけでなくキーも引数として受け取ることができます。

array_all関数を使うメリット

array_all関数を使う主なメリットは以下のとおりです。

  • 配列の要素の効率的なチェック: 配列のすべての要素を効率的にチェックできます。
  • 可読性の向上: ループ処理を記述する必要がなく、コードが簡潔になり、可読性が向上します。
  • 柔軟な条件設定: コールバック関数を使って、複雑な条件を設定できます。

PHPのarray_all関数の使い方まとめ

今回はPHPのarray_all関数の使い方について解説しました。
この記事の内容をまとめます。

・`array_all(array $array, callable $callback): bool`で配列のすべての要素が指定された条件を満たすかどうかを判定する。
・`$array`はチェックする配列。
・`$callback`は各要素に対して実行されるコールバック関数。
・配列のすべての要素が条件を満たす場合は`true`、それ以外の場合は`false`を返す。
・配列内のデータの整合性を確認したり、特定の条件を満たすデータのみを処理したりする場合に便利。
PHP

コメント