下記のコードを翻訳してください。
特に=>が何かわかりません。
宜しくお願い致します。
<?php
$defs = array('山田太郎','e-mail' => 'yamada@wings.msg.to',
'zip' => '100-000','sex' => '男性','age' =>'40',
'os' => array('win','linux'),'memo' =>'特になし'
);
?>
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答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
0
変数を複数まとめられるのが配列と考えるとわかりやすいです。
配列の値に名前がつけれるのが連想配列。
$name = "akira";
$age = 20;
$address = "東京";
とかを
後でまとめて処理したいのでとりあえず変数に格納しておきたい時などに
$person = array(
"name" => "akira",
"age" => 20,
"address" => "東京",
);
と書くことができます。
あとで$person["name"]などでアクセスできます。("akira")
phpでは配列も実際は数値をキーにした連想配列として扱われるらしいです。
投稿2015/06/25 13:58
総合スコア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
総合スコア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
総合スコア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
総合スコア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
総合スコア441
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
classに引数を渡す時に使います。
投稿2015/06/08 10:14
編集2015/06/08 10:16退会済みユーザー
総合スコア0
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/06/08 10:35
退会済みユーザー
2015/06/08 10:54