【PHP】複数の配列を1つの多次元配列にする方法
どうもこんにちはよーすけです。
今回は複数の配列から1つの多次元配列にまとめる方法を紹介します。
今回の目標
配列についての詳しい記事も今後アップする予定です。
今回は下の4つの配列を1つの多次元配列にまとめる方法を紹介します。
$customer_id = array(1, 2, 3);
$customer_name = array("鈴木", "山田", "山本");
$customer_division = array("デザイン", "エンジニア", "執行部");
$customer_age = array(25, 41, 46);
目標
array(4) {
[0]=> array(4) {
["id"]=> 1
["name"]=> "鈴木"
["division"]=> "デザイン"
["age"]=> 25
}
[1]=> array(4) {
["id"]=> 2
["name"]=> "山田"
["division"]=> "エンジニア"
["age"]=> 41
}
[2]=> array(4) {
["id"]=> 3
["name"]=> "山本"
["division"]=> "執行部"
["age"]=> 46
}
}
先に解答
$customer_array = [];
$count = count($customer_id);
for ($i = 0; $i < $count; $i++) {
$customer_array[$i]["id"] = $customer_id[$i];
$customer_array[$i]["name"] = $customer_name[$i];
$customer_array[$i]["division"] = $customer_division[$i];
$customer_array[$i]["age"] = $customer_age[$i];
}
詳しく説明
方針としてはまず新しくcustomer_arrayという配列を作成し4つの配列から1つづつデータを取り出し、新しい配列に代入していく。という方向で作成していきます。
1. まずは配列を作成する。
4つの配列からデータを取得した後にデータを代入するための配列を作成します。
$customer_array = [];
2. 4つの配列の中身の数を数える
4つの配列は最終的にfor文で1つ1つ代入していくので何回for文を回したらいいのかを先に計算しておきます。
$count = count($customer_id);
count関数は引数に配列を指定すると配列の要素数を数えてくれます。今回$customer_id
は配列が入っているので要素数の3が返り値として取得できます。
公式ドキュメントからの引用
count — 配列または Countable オブジェクトに含まれるすべての要素の数を数える
3. for文で新しく作った配列($customer_array
)に代入していく
for ($i = 0; $i < $count; $i++) {
$customer_array[$i]["id"] = $customer_id[$i];
$customer_array[$i]["name"] = $customer_name[$i];
$customer_array[$i]["division"] = $customer_division[$i];
$customer_array[$i]["age"] = $customer_age[$i];
}
for ($i = 0; $i < $count; $i++) {
forの繰り返し宣言ですが、今回は$countで取得した配列の要素数である3回だけfor文を繰り返します。
そして、最も大事なfor文の中身ですが、
$customer_array[$i]["id"] = $customer_id[$i];
新しく作成した$customer_array
の$i番目の要素に id というキーを設定し、キーに対して$customer_idの$i番目の要素を代入しています。
キーの名前は自由に設定できますが、基本は値に合った名前を設定します。
$customer_array[$i]["name"] = $customer_name[$i]
$customer_array[$i]["division"] = $customer_division[$i];
$customer_array[$i]["age"] = $customer_age[$i];
下の3つの部分も同じです。
まとめ
今回は複数の配列を1つにまとめる方法を紹介しました。
配列を扱う回数は多いので扱い方に慣れておくと開発が楽に進むはずです。
今後もPHP JavaScript Laravel CSSに関する記事を更新していきます!
コメント