PHP では、配列は複数の値を格納するデータ構造です。場合によっては、データベース クエリの後に結果セットに追加情報を追加するなど、配列に列を追加する必要があります。この記事では、PHP 配列に列を追加するさまざまな方法を紹介します。
方法 1: ループを使用して新しい列を割り当てる
最初の方法は、ループを使用して配列を走査し、各配列要素に列の値を追加することです。たとえば、次の配列があるとします。
$persons = array( array('name' => 'Tom', 'age' => 24), array('name' => 'John', 'age' => 28), array('name' => 'Sarah', 'age' => 23) );
ここで、名前に基づいて自動的に決定される値を使用して、各人に「性別」列を追加したいとします。これを解決するには、次のコードを使用します。
foreach ($persons as &$person) { $name = $person['name']; if (substr($name, -1) == 'a') { $person['gender'] = 'Female'; } else { $person['gender'] = 'Male'; } }
上記のコードでは、foreach ループを使用して、各人の配列要素を反復処理しました。ループでは、各人の配列要素に「性別」列を追加し、値を割り当てます。
変数 $person は参照によって渡されるため、& 記号を使用することに注意してください。これにより、$person によって参照される要素がループ内で変更されると、元の配列内の要素も変更されることが保証されます。
方法 2: array_map 関数を使用して列を追加する
2 番目の方法は、PHP の組み込みの array_map 関数を使用して列を追加することです。 array_map 関数は、配列内の各要素に関数を適用し、新しい配列を返します。たとえば、次のコード:
$persons = array( array('name' => 'Tom', 'age' => 24), array('name' => 'John', 'age' => 28), array('name' => 'Sarah', 'age' => 23) ); $gender_mapper = function($person) { $name = $person['name']; if (substr($name, -1) == 'a') { $person['gender'] = 'Female'; } else { $person['gender'] = 'Male'; } return $person; }; $new_persons = array_map($gender_mapper, $persons);
上記のコードでは、$gender_mapper という名前の匿名関数を定義し、この関数を使用して array_map 関数を呼び出します。関数 $gender_mapper は、$person 配列パラメータを受け取り、各人物の「性別」列を追加し、最後に増加した $person 配列を返します。
array_map 関数は元の配列ではなく、新しい配列を返すことに注意してください。したがって、結果を新しい変数 $new_persons に保存する必要があります。
方法 3: array_walk 関数を使用して列を追加する
3 番目の方法は、PHP の組み込みの array_walk 関数を使用して列を追加することです。 array_walk 関数は、配列内の各要素を走査し、受け入れられたコールバック関数内の要素を操作します。このコールバック関数は、元の配列で直接変更できます。
$persons = array( array('name' => 'Tom', 'age' => 24), array('name' => 'John', 'age' => 28), array('name' => 'Sarah', 'age' => 23) ); function add_gender(&$person) { $name = $person['name']; if (substr($name, -1) == 'a') { $person['gender'] = 'Female'; } else { $person['gender'] = 'Male'; } } array_walk($persons, 'add_gender');
上記のコードでは、add_gender という関数を定義し、この関数を使用して array_walk 関数を呼び出します。関数 add_gender は、$person 配列パラメータを受け取り、配列内の各人物の「性別」列を追加します。
関数 add_gender の $person パラメーターは参照によって渡されることに注意してください。これは、コールバック関数で $person 配列の要素を変更したことも意味します。
概要
上記では、PHP 配列に列を追加する 3 つの異なる方法を紹介しました。 1 つ目の方法はループを使用して新しい列を割り当てる方法、2 つ目は array_map 関数を使用する方法、3 つ目は array_walk 関数を使用する方法です。特定のニーズとコード実装に応じて、これらの方法の 1 つ以上を選択できます。
上記のメソッドはすべて連想配列用であることに注意してください。通常の配列に列を追加するには、[] 演算子を使用するだけです。例:
$arr = array(1, 2, 3); $arr[] = 4; // 数组末尾增加一列
以上がPHP配列に列を追加の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。