🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

PHP

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

配列

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

MAMP

Mac 上で WordPress などの動的ページのサイトが作れるように環境を構築するフリーソフト

Q&A

解決済

2回答

1456閲覧

PHP、多次元配列について

Junpeioasis

総合スコア9

多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

PHP

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

配列

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

MAMP

Mac 上で WordPress などの動的ページのサイトが作れるように環境を構築するフリーソフト

0グッド

0クリップ

投稿2021/03/11 14:02

連想配列の要素name, age, genderに、
それぞれ田中,25,男
という値を格納し、

   田中
25歳・男性

   という形で出力したいのですが、迷走しています。

PHP

1<?php 2 3$array = [ 4 'name'[0] => ['田中'], 5 'age'[1] => ['25'], 6 'gender'[2] => ['男性'] 7]; 8 9echo $array['name'][0]."\n"; 10echo $array=['age'][0].'歳 •'.$array=['gender'][0];

上記のコードをターミナルで参照すると、

age歳 • gender

という風に、name,age,genderに値が代入されていない状態で出てきてしまいます。
[]を使ってキーの指定をしてみたり、ダメならそれを外してみたり、いろいろ模索しましたが、尽く外れました。

連想配列の使い方がどう間違っていて、この場合どう使えばよかったのか、修正点はどこにあるのか、
どなたかご教授ください。

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

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

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

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

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

guest

回答2

0

ちゃんと基礎を体系的に学んだ方が良いですよ。
その後であれば、マニュアルが役に立ちます。

配列 - php.net

投稿2021/03/11 14:05

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

Junpeioasis

2021/03/11 14:13

どこか参考になるページなどございますか?PHPの何をどう学べば良いのか、正直わかっていません。
hiok

2021/03/11 14:18

必要に応じてググればよいと思います。 とりあえず今回は「php 連想配列」でググるべし。
退会済みユーザー

退会済みユーザー

2021/03/11 14:22

基礎はつまみ食いしないで体系的に学んでください。 新しめの教本を買ってきて読むと良いです。 用語の定義が正しく理解できなければ、識者と会話できないしドキュメントも読めないので、それが最初の一歩ですね。 教本は開発環境に関しても言及のあるものを選ぶと良いですが、自身の環境(OS等)が同じものを選ばないと環境構築で時間を無駄に使います。 環境構築に関しては、デバッグ環境まで載っているものがイイ。 教本で基礎が体系的に学べたら、php であれば公式ページがしっかりしているので以降は公式を頼ることになります。
m.ts10806

2021/03/11 21:40 編集

>どこか参考になるページなどございますか? PHPマニュアルという最も参考になる教材を提示してもらっているのにこの質問が出るということは、 かなりマズいような気がします。回答読んでないのだろうか。 >PHPの何をどう学べば良いのか プログラミング言語は実現するための道具に過ぎないので学習することが目的になってると分かるようにはならないかと。
退会済みユーザー

退会済みユーザー

2021/03/11 23:58

> m.ts10806 さん PHPマニュアルの前に一冊基礎教本を読んでほしいかなぁ。。。 多分、デバッグ環境が php マニュアルだと作れないんですよね。
yukihira0

2021/03/12 08:55 編集

基礎知識もそうだけど、ログに出すなりデバッグして 変数の中身自体を確認することも必要だと思いますよ。 今回だと、意図した動作になっていないことは別として 処理自体は配列の中の一部が「[n] => Array([0] => 男性)」になっていて keyの書き方的に下記の①で配列[n]に田中が入ったあと、②で男性に上書きされています。 ①'name'[0]←一文字目のnを取得(phpだと0は一番目を指定します)して配列のkeyに設定 ②'gender'[2]←三文字目のnを取得して配列のkeyに設定 配列の書き方は検索すればすぐ出てくるので簡単ですよ! ※※デバッグは大事※※
javahack

2021/03/12 09:37

業務だとデバッグの重要性を嫌というほど叩き込まれますが、学習レベルだとあまりデバッグについて学ぶ機会なさそうですね。
guest

0

ベストアンサー

PHP

1 2<?php 3 4$array = [ 5 'name'[0] => ['田中'], 6 'age'[1] => ['25'], 7 'gender'[2] => ['男性'] 8]; 9 10echo $array['name'][0]."\n"; 11echo $array=['age'][0].'歳 •'.$array=['gender'][0];

は何となく書いてる感が強いですね。
多分こういう事がしたいんだと思います。

PHP

1<?php 2 3$array['name'] = ['田中','佐藤','鈴木']; 4$array['age'] = [25,30,35]; 5$array['gender'] = ['男性','女性','男性']; 6 7echo $array['name'][0]."\n"; 8echo $array['age'][0].'歳 •'.$array['gender'][0];

どこか参考になるページなどございますか?PHPの何をどう学べば良いのか、正直わかっていません。

ご自身が独習がかなり得意なタイプもしくは他の言語を一通り学習したことがあるのであれば

PHPマニュアル 配列

のサンプルコードを一つづつ実際に書いてみて、行単位で何をやっているかを理解し、編集して理解を確かめるという方法で深く理解できると思います。

そうで無いのであれば、入門教材を購入して体系的に学習されることをお勧めします。
ググるのにも知見は必要なので、よくわからない状態でググりながら学習を進めるよりは、入門教材によってググる必要が無い状態を確保して一通り学習する方が楽な事が多いです(人に依ります)

お勧めとしては適当な入門書籍(出来れば大型書籍店でご自身で読んでみて)での学習です。

例えば、
初心者からちゃんとしたプロになる PHP基礎入門
は(まだ全部は読んでいませんが)誤魔化さずに一つづつ積み上げるタイプの良書だと思います。

一方で、入門書をteratail内の検索で検索してみて、多く質問が出てくる書籍は大体駄目です。

web教材だと、
Progateは結構評判が良いです。(使ったことは無いです)
無料で全てを済ませようとすると大変という話も聞くので、ざっと試してみて、合いそうであれば有料コースを選択されると良いと思います。

投稿2021/03/12 09:16

tanat

総合スコア18727

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問