PHP 開発では、一連の操作を簡単に実行できるように、配列をセット (リストまたはシーケンスとも呼ばれます) に変換する必要があることがよくあります。コレクションは、要素のシーケンスを保存および操作するために使用されるデータ構造であり、データのフィルター、並べ替え、フィルター、およびマップによく使用されます。 PHP の組み込み配列関数は、配列とコレクションの間で変換および操作するための便利な関数を多数提供します。
この記事では、PHP で配列をコレクションに変換する方法と、一般的な操作例をいくつか紹介します。
PHP では、組み込み配列関数の array_values 関数を使用して、キーを含む連想配列を変換できます。値のペアをインデックス付き配列に格納します。インデックス付き配列の各要素は、キーと値を含む配列です。
これは、連想配列をインデックス付き配列に変換する方法を示すサンプル コードです:
$fruits = array( 'apple' => 'red', 'banana' => 'yellow', 'grape' => 'purple' ); // Use array_values function to convert the associative array to an indexed array $fruits_list = array_values($fruits); print_r($fruits_list);
これにより、次の結果が出力されます:
Array ( [0] => red [1] => yellow [2] => purple )
これで、正常に変換されました。連想配列を変換しました インデックス付き配列に変換します。この配列は後続の操作に引き続き使用できます。
配列をコレクションに変換したら、PHP の配列関数を使用して、一連の一般的なコレクション操作を実行できます。
2.1. コレクションの走査
ループを使用して、コレクション内のすべての要素を走査できます。たとえば、次のコードはコレクション内の各要素を反復処理して出力します:
$fruits = array('apple', 'banana', 'grape'); foreach($fruits as $fruit) { echo $fruit . "\n"; }
これにより、次の結果が出力されます:
apple banana grape
2.2. コレクションのフィルタリング
array_filter 関数を使用して、コレクション内の要素をフィルターできます。 array_filter 関数はコールバック関数をパラメータとして受け取り、結果コレクションにどの要素を保持するかを決定します。たとえば、次のコードは、文字列長が 6 以上のすべての要素をフィルタリングします:
$fruits = array('apple', 'banana', 'grape', 'kiwi', 'lemon'); $filtered_fruits = array_filter($fruits, function($fruit) { return strlen($fruit) >= 6; }); print_r($filtered_fruits);
これにより、次の結果が出力されます:
Array ( [1] => banana [2] => grape [4] => lemon )
2.3. マッピング コレクション
array_map 関数を使用して、コレクション内の各要素を新しい値にマップできます。 array_map 関数は、コレクション内の各要素に基づいて新しい値を返すコールバック関数もパラメータとして受け入れます。たとえば、次のコードはコレクション内の各要素を大文字に変換します:
$fruits = array('apple', 'banana', 'grape'); $mapped_fruits = array_map(function($fruit) { return strtoupper($fruit); }, $fruits); print_r($mapped_fruits);
これにより、次の結果が出力されます:
Array ( [0] => APPLE [1] => BANANA [2] => GRAPE )
2.4. コレクションの折りたたみ
array_reduce 関数を使用して、コレクション内の各要素を折りたたみ、単一の値に結合できます。 array_reduce 関数は、コールバック関数をパラメータとして受け取ります。コールバック関数は、前の要素の値と現在の要素の値の 2 つのパラメータを受け取り、それらを組み合わせた値を返します。たとえば、次のコードはセット内のすべての要素の合計を計算します:
$numbers = array(1, 2, 3, 4, 5); $total = array_reduce($numbers, function($prev, $current) { return $prev + $current; }, 0); echo $total;
これにより、次の結果が出力されます:
15
以上がPHP配列をコレクションに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。