• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:配列に要素を追加する方法)

PHPで配列に要素を追加する方法

このQ&Aのポイント
  • PHPで配列に要素を追加する方法について説明します。配列$colorに$sizeのsizeを追加する方法は、配列の末尾に新しい要素を追加することで行います。
  • 具体的なコード例を示します。まず、配列の末尾に新しい要素を追加するために、array_push関数を使用します。
  • 以下のコードを実行することで、配列$colorに$sizeのsizeを追加することができます。 ```php // $colorと$sizeの要素を結合して新しい要素を作成 $newElement = array_merge($color, $size); // $colorの値を新しい要素で置き換える $color = $newElement; ```

質問者が選んだベストアンサー

  • ベストアンサー
  • tomaju
  • ベストアンサー率76% (84/110)
回答No.3

> foreach ($color as $v) { > > $v["size"] = $size; > } > > うまくいきませんでした。 そうですね。これだと $color の内容に反映されません。 ANo2 で紹介されているリファレンスを使うのであれば、& をつける必要があります。 foreach ($color as &$v) { $v["size"] = $size; } 参照URL: http://php.net/manual/ja/control-structures.foreach.php > foreach ($color as $key=>$arr) { >  $color[$key]['size']=$size; > } > > と言うことで解決できたようなのですが、問題なかったでしょうか? 特段問題ないと思います。 (むしろANo1が冗長だったかなぁと) 質問では size がいろいろな値でしたが、実際には1種類ということですね。

kyabe2_0751
質問者

お礼

$sizeは$colorをforeachで回して取得される結果を元に、 別のfunctionで取得されていたので、 結果1個づつと言うことでした。 最初そこまで見えてなかったので質問を間違えてしまいました。 お手数おかけしました。 ありがとございます。

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

PHP5以上であればforeachでリファレンス参照ができるので ちょっとだけ便利 foreach($color as $key=> &$arr){ $arr["size"]= $size[$key]["size"]; }

kyabe2_0751
質問者

お礼

自己解決なんですが、 foreach ($color as $key=>$arr) {  $color[$key]['size']=$size; } と言うことで解決できたようなのですが、問題なかったでしょうか?

kyabe2_0751
質問者

補足

質問の仕方を間違えました。 $colorは配列ですが、 追加したい$sizeは配列ではなく変数でした。 foreach ($color as $v) { $v["size"] = $size; } うまくいきませんでした。 引き続きよろしくお願いします。

  • tomaju
  • ベストアンサー率76% (84/110)
回答No.1

$size の 0 番目の要素の size の値を $color の 0 番目の要素の size にセット $size の 1 番目の要素の size の値を $color の 1 番目の要素に size にセット $size の 2 番目の要素の size の値を $color の 2 番目の要素に size にセット .... ということであれば、ループで配列の要素を列挙して 追加していけばいいかと思います。 ■foreach foreach($color as $key=>$color_item){ $size_item = $size[$key]; $color_item['size'] = $size_item['size']; $color[$key] = $color_item; } ■for $color_count = count($color); for($i = 0; $i < $color_count; $i++){ $color[$i]['size'] = $size[$i]['size']; }

kyabe2_0751
質問者

お礼

自己解決なんですが、 foreach ($color as $key=>$arr) {  $color[$key]['size']=$size; } と言うことで解決できたようなのですが、問題なかったでしょうか?

kyabe2_0751
質問者

補足

同じ補足になりますが、 質問の仕方を間違えました。 $colorは配列ですが、 追加したい$sizeは配列ではなく変数でした。 foreach ($color as $v) { $v["size"] = $size; } うまくいきませんでした。 引き続きよろしくお願いします。

関連するQ&A