調剤薬局オーナー様へ 【現在就業可能日】火曜、木曜、土曜、日曜 時給3,300円~相談可能 お気軽にお問い合わせください。

【バックエンド初心者がまとめるPHP学習日記③】配列と連想配列の概念を理解しよう

おはようございます、こんにちは、こんばんわ。

フリーランスの薬剤師として生活収入を得ながら、プログラミング言語を勉強している”Yuya Matsuura”と申します。

基本的には、HTML,CSS(SASS),JavaScriptを用いたWebページ制作で現在副収入を得ようとしている最中ですが、

人並みに知識欲はある方なので、平行して複数のプログラミング言語やフレームワークを学習しております。

その中で、今回から【WordPress】などにも採用されている≪PHP≫について、改めて学び始めておりまして、

ブログ記事としてアウトプットすることで知識の定着を狙う

+同じような境遇の方の参考になればと思い、シリーズ化して記事にさせて頂きます。

個人的な目標は”Raravel”(フレームワーク)をサクサク使いこなせるようになりたい!です。

※なお、追々記事でまとめるかは決めかねていますが、ローカル環境構築については今のところ記事にするつもりはないので、ご容赦ください。

アウトプット方式なので、記事としては見難いかも知れませんが、ご参考になれば幸いです。

それでは本文をどうぞ!

目次

PHPにも【配列】がある

私も含めてですが、HTML, CSS, JavaScriptから学んだ方は【配列】や【オブジェクト】と聞くと、

何となく察しがつくとは思いますが、データを格納する技法になります。

まずは【配列】について学んでいきましょう。

基本的にJavaScriptの書き方と同じ!

前パートで変数について学んだと思いますが、$変数名 = に続いて、[ ]; 内に複数の値を渡していきます。

<?php
$names = ['Yamada', 'Tanaka', 'Sakamoto', 'Saito'];
?>

先にJavaScriptを学習している方であれば、配列の書き方は同じと気付くと思います。

この時、配列の中に記述した各「値」は”要素”と呼ばれます。

そして・・・察しの良い方は分かると思いますが、この各要素には【インデックス】と言う数字が振られています。

配列の中に記述した”要素”には”インデックス”と言う数字(番号)が振られる

JavaScriptと同じですね!

指定の要素のみを取り出す(JavaScriptと同じ考え)

2番目の’Tanaka’と言う要素のみ、echo文で出力したい! と言う例にします。

これも考えは同じです。

上記例では、$names には 4つの要素が配列として格納されています。

そして、前から順番に「0」「1」「2」「3」と言う数字が振られているので、

‘Tanaka’を呼ぶにはインデックス「1」を指定してechoしましょう!

<?php
$names = ['Yamada', 'Tanaka', 'Sakamoto', 'Saito'];
echo $names[1];
?>

ローカルのブラウザには「Tanaka」と出力されたかなと思います。

連想配列(≒オブジェクト?)を学ぶ

JavaScriptを触ったことがある皆様は、次は”オブジェクト”かな?を予想していると思います。

そして、それはほとんど正解と言えると思います。

ただしニュアンスとしては、「連想配列」と「オブジェクト」は近いものだと思うのですが、

JavaScriptでは【配列】【オブジェクト】を明確に分けています。

対して、PHPでは「まず【配列】があって、その中の1つの手法に【連想配列】がある」

みたいなイメージを持ちながら、下記のPHPでの書き方(そしてJavaScriptでのオブジェクトとの書き方の違い)を学んでいきましょう!

なぜ”連想配列”が必要なのか?

配列は複数のデータを格納することが出来ます。

そして、上記で学んだように【格納した”各要素”には”インデックス”が振られます】

上記の例のように”name”と言う変数に、[‘Yamada’, ‘Tanaka’, ‘Sakamoto’, ‘Saito’]を格納する場合は、

[‘Yamada’, ‘Tanaka’, ‘Sakamoto’, ‘Saito’] の各々が “name(名前)” なんだなと客観的に理解できると思いますが、

例えば

とした場合は、’yamada’ には「0」 40 には「1」、と言うインデックスが振られるのですが、

<?php
$deta = ['Yamada', 40, 'Kyoto'];
?>

各々の要素が何を意味するかは想像しにくいですよね・・・。

記述側は [名前, 年齢, 出身地] と言う意味を本当は持たせたいとします。

インデックスの代わりに「キー」を持たせる【連想配列】という記述方法

それでは、各要素に「意味(キー)」を持たせていきましょう!

ルールは下記で記しますが、このように記述することが出来ます。

<?php
$deta = ['name' => 'Yamada', 'age' => 40, 'address' => 'Kyoto'];
?>

配列と異なり、JavaScriptと書き方が異なります!!!!!!注意

書き方① 配列と同じように [] で囲む

書き方② キーも「’ ‘」で囲む

書き方③ キーと値の間に 「=>」 を書く。

先ほど

対して、PHPでは「まず【配列】があって、その中の1つの手法に【連想配列】がある」

と説明させて頂きましたが、連想配列は「あくまでも配列」の1つなので、書き方としては [] で囲む必要があります。

そしてインデックスの代わりとなるキーを記述しなければなりません。

let deta = {
    name: "yamada",
    age: 40,
    address: "Kyoto"
};

一方で、こちらがJavaScriptのオブジェクトの書き方です。

意味合いは同じなのですが、JavaScriptでは配列とオブジェクトは別のものとしてとらえているため、

上記例でも [] ではなく {} で囲っていますね!

同じように指定した要素を取り出す

連想配列の値の取り出し方は、配列と同様の手法です。

[] 内には、インデックスの代わりにキーを指定して”echo”してみましょう!

<?php
    $deta = ['name' => 'Yamada', 'age' => 40, 'address' => 'Kyoto'];
    echo $deta['address'];
?>

ローカルブラウザには「Kyoto」と表示されると思うので試してみてください。

ちなみにキーは必ず「’ ‘」で囲いましょう。

まとめ

以上がPHPでの配列と連想配列の考え方と書き方になります。

JavaScriptと比べる事で同じ部分や違う部分を比較できるので、

双方の再学習になりますでしょうか??

次回は【if文】について、まとめていきたいなと思ってます。

では!次回の記事で。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次