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

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

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

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

teratail

teratail(テラテイル)は、プログラミングに特化した日本語Q&Aサイトです。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

7回答

1919閲覧

[=>]これなんですか?

b1ackc0ffee

総合スコア267

PHP

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

teratail

teratail(テラテイル)は、プログラミングに特化した日本語Q&Aサイトです。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2015/06/08 10:09

下記のコードを翻訳してください。
特に=>が何かわかりません。
宜しくお願い致します。

<?php $defs = array('山田太郎','e-mail' => 'yamada@wings.msg.to', 'zip' => '100-000','sex' => '男性','age' =>'40', 'os' => array('win','linux'),'memo' =>'特になし' ); ?>

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

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

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

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

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

guest

回答7

0

KEYとVALUEのセットです。

$hoge = array('zip' => '100-000');

とした場合、 => の左辺がKEY、右辺がVALUE(値)になります。

これに対し、$hoge['zip']とすることで、100-000という値が取り出せます。

foreach($defs as $key => $val) { echo $key . " : " . $val . "<br>\n"; }

などとしてみるとよくわかるかと思います。

投稿2015/06/08 10:28

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

b1ackc0ffee

2015/06/08 10:35

有難うございます。 私、luckerさんが思ってるレベルの10倍くらいは下なので、 解読できませんです。 ごめんなさい。 サルでもわかるように教えてください。
退会済みユーザー

退会済みユーザー

2015/06/08 10:54

まず、array()というのは配列です。 例えば $a = array(1, 2, 3, "hoge", null); とすると、 $aに1、2、3、"hoge"という文字列、null(値が未定義という意味) が順番に入ります。 ここで、"hoge"を取り出したい場合は $a[3] でアクセスします。 4番目なのになぜ3かというと、PHPではインデックスは0番から始まるからです。 この数字を“添字”と呼びます。 上記の例では値が5つなのでいいのですが、100個とか1000個とかあると、 目的の値が何番目か調べるだけでも一苦労です。 そこで、 $b = array("label1" => 1、"label2" => 2、 "label3" => 3, "text" => "hoge", "info" => null); というように値にラベルを付けてしまいます。 こうすると、 $b["text"] で"hoge"という文字列を取り出せます。これを連想配列と呼びます。 例えば $meibo = array( array("name" => "山田太郎", "shintyou" => 178), array("name" => "木下しずえ", "shintyou" => 156), array("name" => "大木凡人", "shintyou" => 164), ); という連想配列の配列だと、 $meibo[2]["name"] は 大木凡人 $meibo[0]["shintyou"] は 178 となります。
guest

0

変数を複数まとめられるのが配列と考えるとわかりやすいです。

配列の値に名前がつけれるのが連想配列。

$name = "akira";
$age = 20;
$address = "東京";

とかを

後でまとめて処理したいのでとりあえず変数に格納しておきたい時などに

$person = array(
"name" => "akira",
"age" => 20,
"address" => "東京",
);

と書くことができます。

あとで$person["name"]などでアクセスできます。("akira")
phpでは配列も実際は数値をキーにした連想配列として扱われるらしいです。

投稿2015/06/25 13:58

cocacola5959

総合スコア32

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

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

0

連想配列のための接続詞です。

まず例題の連想配列を、通常の配列で表記すると以下のようになります。

lang

1$defs = array('山田太郎','yamada@wings.msg.to','100-000','男性','40', array('win','linux'),'特になし' ); 2 3■使用例 4--- 5echo $defs[0]; 6実行結果: 山田太郎 7--- 8echo $defs[3]; 9実行結果: 男性 10---

PHPの一般的な配列記載方法については御理解されておられると存じます。
これを意味は同じで別の書き方をすると、以下のようになります。

lang

1$defs = array( 20=>'山田太郎', 31=>'yamada@wings.msg.to', 42=>'100-000', 53=>'男性', 64=>'40', 75=>array('win','linux'), 86=>'特になし' 9); 10 11■使用例 12--- 13echo $defs[0]; 14実行結果: 山田太郎 15--- 16echo $defs[3]; 17実行結果: 男性 18--- 19 20※通常の配列は、0=> 1=> といった記述を省略しているのです。

連想配列とは、配列を参照するときに使う[]の中の数値を任意の名称にすることです。
連想配列で記載したものが以下の者になります。

lang

1$defs = array( 2'name'=>'山田太郎', 3'e-mail'=>'yamada@wings.msg.to', 4'zip'=>'100-000', 5'sex'=>'男性', 6'age'=>'40', 7'os'=>array('win','linux'), 8'memo'=>'特になし' 9); 10 11■使用例 12--- 13echo $defs["name"]; 14実行結果: 山田太郎 15--- 16echo $defs["sex"]; 17実行結果: 男性 18---

データを配列に格納した際に、[]の中が数値では、プログラミングするときにわかりにくかったり、間違えやすかったりしますが、連想配列にすると、[]の中に意味を連想する文字列で表現できるため、プログラミングがやりやすくなります。

プログラマーがプログラミングする際の親切機能としてとらえるとわかりやすいかもしれません。

投稿2015/06/11 07:32

KenjiObata

総合スコア440

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

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

0

変数の中に配列が入っているので、まずどんな構成なのかを知るためにvar_dumpをしました。
var_dump($defs);

var_dumpの結果、以下の内容が出力されます。

array(7) {
[0]=>
string(12) "山田太郎"
["e-mail"]=>
string(19) "yamada@wings.msg.to"
["zip"]=>
string(7) "100-000"
["sex"]=>
string(6) "男性"
["age"]=>
string(2) "40"
["os"]=>
array(2) {
[0]=>
string(3) "win"
[1]=>
string(5) "linux"
}
["memo"]=>
string(12) "特になし"
}

もっと分かりやすく書くと、

配列[7] {
0:"山田太郎"
e-mail:"yamada@wings.msg.to"
zip:"100-000"
sex:"男性"
age:"40"
os:
配列[2] {
0:"win"
1:"linux"
}
memo:"特になし"
}

上記の配列は、連想配列と言います。
例えば、e-mailを見てみると、【e-mail:yamada@...】という構成になっています。
「e-mail」がkey(名前)で「yamada@...」がvalue(値)ですね。

このkeyとvalueの構成を持った配列を連想配列と言います。
質問の【=>】は、この連想配列を作る記号だと思ってください。

array('key'=>'value');

と書けば、

array(1) {
["key"]=>"value"
}

というような配列ができます。

投稿2015/06/09 04:02

axshia

総合スコア12

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

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

0

連想配列てやつですね。

$defs = array('山田太郎','e-mail' => 'yamada@wings.msg.to',
本来配列は paint( $defs[0] ); といった感じで数字で中身を取り出します。(配列の数字のことを添え字)ともいいます。
連想配列を使うと paint( $defs['e-mail'] ); と数字の代わりに文字列を使って中身を取り出せます。
そして問題の定義ですが、'e-mail' => 'yamada@wings.msg.to' は
$defs['e-mail'] = yamada@wings.msg.to; このように 代入したのと同じ意味になります。
array('添え字名' => '代入したい文字列') といった感じで初期化します。

投稿2015/06/08 13:08

MasaakiIrie

総合スコア1021

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

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

0

配列$defsが大きな箱(棚?)と考え、各引出しには名前(これを配列のキーと呼ぶ)を付けることができます。
コンマからコンマまでが一つの引き出し(配列の値といいます)です。
'e-mail' => 'yamada@wings.msg.to' のように=>がついているものは、
前が引き出しの名前、後ろが中身です。
ついていない物は、そのままそれが引き出しの中身で、引き出しそのものには自動で名前が振られます。

=>の後ろが更にarray()となっている場合は、引き出しの中にさらに箱が入っていることになります。
なので'os' => array('win','linux')の部分は'os'という引出しの中にさらに箱が入っており、
引き出しは二つで、どちらも名前は指定されていない、ということになります。

引き出しの名前が指定されない場合は、頭から順に0~が振られていきます。
途中の要素に名前が指定された時は、欠番になるのではなくそのまま通し番号です。
(keyの振られ方についてはいろいろな配列をvar_dumpとかしまくってるとなんとなくわかってきますw)

なので、中身を取り出したいときは
一番外側の箱の名前[引き出しの名前][その中の引き出しの名前]...
というように目的の中身にたどり着くまで[]で引き出しの名前を指定することになります。

図がないとわかりにくいですね…orz

投稿2015/06/08 11:11

ao_love

総合スコア441

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

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

0

classに引数を渡す時に使います。

投稿2015/06/08 10:14

編集2015/06/08 10:16
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2015/06/08 10:25

なんか違う気がする…
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問