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

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

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

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

Q&A

2回答

2471閲覧

phpで多次元配列に用意されている配列を追加したい。

seiyamanmanman

総合スコア12

PHP

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

0グッド

0クリップ

投稿2019/06/16 09:30

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメ
PHPで多次元配列についての問題
何ですが多次元配列にageというkeyを追加してageListという年齢が入っている配列をforeachでそれぞれに追加したいのですがやり方がわかりません。

問題を貼っておきます。
多次元配列
$personalInfos = [
[
'name' => 'Aさん',
'mail' => 'aaa@mail.com',
'tel' => '09011112222'
],
[
'name' => 'Bさん',
'mail' => 'bbb@mail.com',
'tel' => '08033334444'
],
[
'name' => 'Cさん',
'mail' => 'ccc@mail.com',
'tel' => '09055556666'
],
];

$ageList = [25, 30, 18];
上記の$ageListを使用して、$personalinfosに age というKeyに対して$ageListのそれぞれの年齢をValueとして追加してください。その際は、foreachを使用してください。
追加ができたらvar_dumpを使用して配列の中身を確認してください。下記のようになっていたらOKです。

出力結果
array(3) {
[0]=> array(4) {
["name"] => string(7) "Aさん"
["mail"] => string(13) "aaa@mail.com"
["tel"] => string(11) "09011112222"
["age"] => int(25)
}
[1]=> array(4) {
["name"] => string(7) "Bさん"
["mail"] => string(13) "bbb@mail.com"
["tel"] => string(11) "08033334444"
["age"] => int(30)
}
[2]=> array(4) {
["name"] => string(7) "Cさん"
["mail"] => string(13) "ccc@mail.com"
["tel"] => string(11) "09055556666"
["age"] => int(18)
}
}

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

ソースコード

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

m.ts10806

2019/06/16 09:33

コード(またはデータ、エラー)はマークダウンのcode機能を利用してご提示ください。 また質問テンプレート文言が多く残っているように見受けられます。 要件を読み取る上でノイズになり得ますので質問を編集してください。
kei344

2019/06/16 09:37

ご自身で試されたコードを質問文に追記し、「何」が「どのように」わからないのか、コードのどの部分で詰まっているのかなどを具体的に追記されたほうが回答が望めると思います。
miyabi_takatsuk

2019/06/16 22:29

> age というKeyに対して$ageListのそれぞれの年齢をValueとして追加してください。その際は、foreachを使用してください。 作業依頼ととられてしまいますが、どういう解釈をすればいいでしょうか・・・?
guest

回答2

0

foreachの演習でしょうか?
考え方は2つあります。

  • $personalInfosを回す

PHP

1<?PHP 2$personalInfos = [ 3 [ 4 'name' => 'Aさん', 5 'mail' => 'aaa@mail.com', 6 'tel' => '09011112222' 7 ], 8 [ 9 'name' => 'Bさん', 10 'mail' => 'bbb@mail.com', 11 'tel' => '08033334444' 12 ], 13 [ 14 'name' => 'Cさん', 15 'mail' => 'ccc@mail.com', 16 'tel' => '09055556666' 17 ], 18 ]; 19 20$ageList = [25, 30, 18]; 21 22foreach($personalInfos as $key=>&$val){ 23 $val["age"]=$ageList[$key]; 24} 25unset($val); 26var_dump($personalInfos);
  • $agelistを回す

PHP

1$personalInfos = [ 2 [ 3 'name' => 'Aさん', 4 'mail' => 'aaa@mail.com', 5 'tel' => '09011112222' 6 ], 7 [ 8 'name' => 'Bさん', 9 'mail' => 'bbb@mail.com', 10 'tel' => '08033334444' 11 ], 12 [ 13 'name' => 'Cさん', 14 'mail' => 'ccc@mail.com', 15 'tel' => '09055556666' 16 ], 17 ]; 18 19$ageList = [25, 30, 18]; 20 21foreach($ageList as $key=>&$val){ 22 $personalInfos[$key]["age"]=$val; 23} 24var_dump($personalInfos);

投稿2019/06/17 00:22

yambejp

総合スコア114779

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

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

piboshi

2019/07/22 07:16 編集

お疲れ様です。 $personalInfosを回すの方の、 ```php foreach($personalInfos as $key=>&$val){ $val["age"]=$ageList[$key]; } ``` この=>の後の&は、配列の追加をする場合につけるものということで間違い無いでしょうか? この&を抜かすとageが入らないことは確認できたのですが、代入演算子のひとつと考えてよいものなのかと思いまして。。
guest

0

php

1for($i=0;$i<3;$i++){ 2 $personalInfos[$i]["age"]=$ageLisi[$i]; 3}

投稿2019/06/16 22:28

papinianus

総合スコア12705

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

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

papinianus

2019/06/17 08:45

foreachつかわないといけなかったのね。ごめん
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問