6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

初学者の時に躓いたこと -連想配列の中に入れた連想配列の値を取り出す(PHP)-

Last updated at Posted at 2023-03-30

初めに

初投稿。

私は
・PHP使用歴 4年
・Python使用歴 約10ヶ月
の主にWEBアプリのバックエンド側の開発に携わっているエンジニアです。

今回は初学者だった頃の躓きから学んだことを記事にしてみました。
なお、この記事で使っているコードは初学者だった当時の記憶をベースに、この記事のために作成したPHPのコードとなります。
おきづきの点などありましたら、ご指摘いただけると助かります。

読者対象

プログラミングの学習を始めたばかりの初学者の方

躓いたシチュレーション

$array_hoge = [
    'last_name' => '山田',
    'first_name' => '太郎'
];

$array_fuga = [
    'last_name' => '佐藤',
    'first_name' => '花子'
];

$array_piyo['teacher'] = $array_hoge;
$array_piyo['student'] = $array_fuga;

この状態から$array_hogeを使わず$array_piyoをつかって山田の値を取得したい

$array_piyo['teacher']['last_name']で取得できるが・・・

当時の私は配列そのものをよく理解できていないところがあり、多次元配列など検索に必要なキーワードを思い浮かべることができていませんでした。
そのため、Google検索などを使って取得方法を調べたものの、一次元配列での値の取得方法までしか辿り着くことができませんでした。
(配列の種類のことはよく分からず、単に$array_hogeなら$array_hoge['last_name']で山田を取得できるぐらいの認識)

すでに知っていた知識だけで乗り切ろうと

foreach($array_piyo as $key => $val){
    if($key == 'teacher'){
        print($val['last_name']) # ここで値を取得
    }
}

などで強引に取得したこともありましたが、コードが複雑になっていくとこのような強引な値の取り方では対処できない場面が出てきました。

考えられる方法を試してみた

$array_hogeなら$array_hoge['last_name']で山田が取得できる

この情報を頼りになんとか$array_piyoから直接値を取得できないか考えいろいろな方法を試してみました。

具体的には

  • $array_piyo['teacher']$array_hoga['last_name']

  • $array_piyo['teacher'][$array_hoga['last_name']]

とか試してたと思います。

上記はエラーになりましたが、何度か繰り返していく中で無事$array_piyo['teacher']['last_name']で値を取得できることに辿り着くことができました。

最後に

この経験を通して考えられる方法を試してみることの大切さに気づきました。
実際に試していく過程でエラーに何度も当たったことで、単に多次元配列の値の取り出し方を知るだけでなく、配列とは何かやそもそも配列を入れている変数とはなにかなどの理解が深まっていったように思います。
全てを理解した上でコードが書けることが理想であるとは思いますが、理解してから書こうとすると全く手が動かせなくなってしまうということもあると思います。
そんな時はまず考えられる方法を試してみるを試してみていただきたいと思います。

補足

  • 初学者の方の中には、エラーそのものが怖いと感じていらっしゃる方もいるのではないかと思います。
    プログラミングの中では一度エラーが出ても、動く状態まで戻せることが大半です。
    元に戻せない致命的なエラーがあるのは事実ですが、アプリのDB操作が絡まない部分を一部修正する程度では動く状態にできなくなることはそうそうないので、そういう部分から試していただければと思います。
    (繰り返すうちに危険な操作がわかるようになってくると思います)

  • この記事はなんとなく動けば良いを推奨しているものではありません。
    動いた後はなぜ動くようになったのか考えていただければと思います。

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?