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

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

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

foreachは、List・Collection・Arrayといったデータ構造の各要素に対して繰り返し処理を実行するために扱われる、制御構造の構文です。

PHP

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

3回答

294閲覧

配列とforeachとvar_exportを使って、'name' => '太郎',と出力したい。

退会済みユーザー

退会済みユーザー

総合スコア0

foreach

foreachは、List・Collection・Arrayといったデータ構造の各要素に対して繰り返し処理を実行するために扱われる、制御構造の構文です。

PHP

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/06/04 10:05

編集2020/06/04 12:28

たびたびすみません。再度訂正しました。
求めている表示結果の内容を修正しました

$names = ['太郎', '次郎', '三郎'];
↑この配列とforeachとvar_exportを使って、以下のように表示させなさい、という問題に取り組んでいます。

$arrで以下のような結果を表示させたいです。

<!-- 求めている表示結果 --> $arr = [ ['name'=>'太郎'], ['name'=>'次郎'], ['name'=>'三郎'], ];

始め、'name'というキーを与えるのかと思ったのですが、配列に、同じキーの値は1つしか入れられないと、教えていただきました。

$names = ['太郎', '次郎', '三郎']; の配列をforeachとvar_exportを使用することが条件なのですが、同じ名前のキーは入れることができません。

name属性のようにみえるのですが、配列に対してforeach文をつかってname属性を与え、var_exportで上記のような出力を得ることは可能でしょうか?

--------------------訂正前の質問文②----------------------------
※回答して頂いた方々からのご指摘をうけ、質問文を変更しました。

$names = ['太郎', '次郎', '三郎'];
↑この配列とforeachとvar_exportを使って、以下のように表示させなさい、という問題に取り組んでいます。

<!-- 求めている表示結果 --> $arr = [ ['name'=>'太郎'], ['name'=>'次郎'], ['name'=>'三郎'], ];

始め、'name'といういーを与えるのかと思ったのですが、配列に、同じキーの値は1つしか入れられないと、教えていただきました。

$names = ['太郎', '次郎', '三郎']; の配列をforeachとvar_exportを使用することが条件なのですが、同じ名前のキーは入れることができません。

name属性のようにみえるのですが、配列に対してforeach文をつかってname属性を与え、var_exportで上記のような出力を得ることは可能でしょうか?

--------------------訂正前の質問文①----------------------------

配列にforeachを使ってキーを上書きする方法はありますでしょうか?

$names = ['太郎', '次郎', '三郎'];
↑この配列とforeachとvar_exportを使って、以下のような表示結果を得たいです。

<!-- 求めている表示結果 --> array ( 'name' => '太郎', 'name' => '次郎', 'name' => '三郎', )

ですが、以下のようなコードを書いてみたのですが、うまく行きません。

<!-- 自分で書いたコード --> <?php $names = ['太郎', '次郎', '三郎']; foreach ($names as $key => $value) { $key = "name"; } var_export($names); ?>

以下のように表示されます。

<!-- 表示結果 --> array ( 0 => '太郎', 1 => '次郎', 2 => '三郎', )

以下ように値に対して一つずつ、キーを設定するのではなく、foreachを使ってまとめてキーを上書きする方法はありますでしょうか?
array(
key => value,
key2 => value2,
key3 => value3,
...
)

アドバイスよろしくお願いします。

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

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

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

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

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

kei344

2020/06/04 10:40

どのようなことを実現するために、提示の内容が必要なのでしょうか。(別の解決方法があるかもしれません)
takasima20

2020/06/04 10:42

とりあえず「求めている表示結果」はムリです。keyを変えるならその法則性を提示しましょう。無かったら地道に書くしかないスよ。
退会済みユーザー

退会済みユーザー

2020/06/04 11:01

ありがとうございます!アドバイスを受け、質問文を訂正しました!キーを変えて、問題を解こうとしていたのですが、そもそも私の考え方が間違っていたようです。
退会済みユーザー

退会済みユーザー

2020/06/04 12:28

求める表示結果を修正して再度投稿しました。これでも無理でしたら、問題設定が間違っているように思いますがいかがでしょうか?
guest

回答3

0

以下のような表示結果を得たいです。

無理です。配列に、同じキーの値は1つしか入れられません。

投稿2020/06/04 10:11

maisumakun

総合スコア145183

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

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

退会済みユーザー

退会済みユーザー

2020/06/04 11:02

ありがとうございます!配列に、同じキーの値は1つしか入れられないのですね。 アドバイスを受け、質問文を訂正しました!キーを変えて、問題を解こうとしていたのですが、そもそも私の考え方が間違っていたようです。
maisumakun

2020/06/04 11:14

var_exportを使わずに、同様のものを手で出力するか、あるいはインチキですが、Unicodeにある「幅ゼロのスペース」などを活用して、「見た目的には全部nameに見えるけど、実は違うキーにする」など、変則的な方法しかないのではないかと思います。
退会済みユーザー

退会済みユーザー

2020/06/04 11:22

ありがとうございます!どうやら、問題設定自体が間違っている可能性がありますね・・・
guest

0

ベストアンサー

初心者向けの課題とかなら…

php

1<?php 2$names = ['太郎', '次郎', '三郎']; 3$arr = array(); 4foreach ($names as $value) { 5 $arr[] = array('name'=>$value); 6} 7var_export($arr); 8?>

※ foreach で直接配列の内容を変更することはできないんス。

投稿2020/06/05 10:58

takasima20

総合スコア7458

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

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

退会済みユーザー

退会済みユーザー

2020/06/05 11:54

ありがとうございます!! 解決できました!!
guest

0

こういうこと?

PHP

1$a = ['太郎', '次郎', '三郎']; 2$b = array_map(function($x){ 3 return ["name"=>$x]; 4},$a); 5print_r($b);

投稿2020/06/05 00:47

yambejp

総合スコア114784

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問