質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

23721閲覧

PHPで配列に配列の追加

msx2

総合スコア174

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2017/04/18 07:43

配列1に配列2を追加したいです。

■配列1
$arr1[0] = ["id"=>101, 'name'=>"aaa"];
$arr1[1] = ["id"=>102, 'name'=>"bbb"];

■配列2
$arr2[0] = ["id"=>103, 'name'=>"ccc"];
$arr2[1] = ["id"=>104, 'name'=>"ddd"];

■欲しい結果
$arr1[0] => ["id"=>101, 'name'=>"aaa"];
$arr1[1] => ["id"=>102, 'name'=>"bbb"];
$arr1[2] => ["id"=>103, 'name'=>"ccc"];
$arr1[3] => ["id"=>104, 'name'=>"ddd"];

array_pushやarray_mergeではダメで、+=演算子はキーが重複しているのでうまくいきません。
下記の様にforeachで回すしかないのでしょうか?
キーはふり直しで構いません。

PHP

1foreach($arr2 as $a){ 2 $arr1[] = $a; 3}

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

php

1<?php 2$arr1[0] = ["id"=>101, 'name'=>"aaa"]; 3$arr1[1] = ["id"=>102, 'name'=>"bbb"]; 4 5$arr2[0] = ["id"=>103, 'name'=>"ccc"]; 6$arr2[1] = ["id"=>104, 'name'=>"ddd"]; 7 8$a = array_merge($arr1,$arr2); 9 10print_r($a);

結果

Array ( [0] => Array ( [id] => 101 [name] => aaa ) [1] => Array ( [id] => 102 [name] => bbb ) [2] => Array ( [id] => 103 [name] => ccc ) [3] => Array ( [id] => 104 [name] => ddd ) )

合ってません?

投稿2017/04/18 07:53

shi_ue

総合スコア4437

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

msx2

2017/04/18 07:57

ありがとうございます。 array_merge関数の使い方を勘違いしていました。。 お恥ずかしい(汗)
shi_ue

2017/04/18 07:59

ドンマイ!
guest

0

array_pushやarray_mergeではダメで、

というのは、array_pushやarray_mergeは使ってはいけないという制限があるという事でしょうか?
そうでなければ以下の様な形で求める配列が取得できます。
使ってはいけないのであれば、foreachで回してしまうのが手っ取り早くはあります。

PHP

1<?php 2 3$arr1[0] = ["id"=>101, 'name'=>"aaa"]; 4$arr1[1] = ["id"=>102, 'name'=>"bbb"]; 5$arr2[0] = ["id"=>103, 'name'=>"ccc"]; 6$arr2[1] = ["id"=>104, 'name'=>"ddd"]; 7 8$arr1 = array_merge($arr1,$arr2); 9 10var_dump($arr1);

実行結果

array(4) { [0]=> array(2) { ["id"]=> int(101) ["name"]=> string(3) "aaa" } [1]=> array(2) { ["id"]=> int(102) ["name"]=> string(3) "bbb" } [2]=> array(2) { ["id"]=> int(103) ["name"]=> string(3) "ccc" } [3]=> array(2) { ["id"]=> int(104) ["name"]=> string(3) "ddd" } }

投稿2017/04/18 08:00

tanat

総合スコア18709

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

msx2

2017/04/18 08:04

array_merge関数で求めている配列になりました。 ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問