73231

[code]

    $list = array(
        array(
            'id'=>1,
            'name'=>'a',
            'mail'=> array('a1@mail.com','a2@mail.com')
        ),
        array(
            'id'=>2,
            'name'=>'b',
            'mail'=> array('b1@mail.com','b2@mail.com')
        ),
        array(
            'id'=>3,
            'name'=>'c',
            'mail'=> array('c1@mail.com','c2@mail.com')
        ),
        array(
            'id'=>4,
            'name'=>'d',
            'mail'=> array('d1@mail.com','d2@mail.com')
        )
    );
    
    echo 'foreach'."\n";
    foreach ( $list as $valueA ) {
        foreach ( $valueA as $varKeyB => $varValueB ) {
            echo '<p>';
            echo $varKeyB . ': ' . $varValueB;
            echo '</p>';
        }
    }
    
[/code]

ID:1 名前:a mail1:a1@mail.com mail2:a2@mail.com  
ID:2 名前:b mail1:b1@mail.com mail2:b2@mail.com  
ID:3 名前:c mail1:c1@mail.com mail2:c2@mail.com  
ID:4 名前:d mail1:d1@mail.com mail2:d2@mail.com

上記のように取得したいです


CC BY-SA 4.0
2021-01-11T09:59:06.540
73215
2021-01-12T00:17:06.770
43483
question
php
ネストしてる連想配列で複数ある中身を取得する方法


おそらくPHPにおける配列でキーの宣言をを省略すると数値添字配列となり、  
キーが0から割り当てられることを理解していればそれほど難しい処理ではないでしょう。

参考：[PHP 配列](https://www.php.net/manual/ja/language.types.array.php)

今回の場合

[code]

    $list = array(
        array(
            'id'=>1,
            'name'=>'a',
            'mail'=> array('a1@mail.com','a2@mail.com')
        ),
        array(
            'id'=>2,
            'name'=>'b',
            'mail'=> array('b1@mail.com','b2@mail.com')
        )
    );
    
[/code]

と記述するとキーが宣言されていない配列は数字添字配列となり、内実は

[code]

    $list = array(
        0 => array(
            'id'=>1,
            'name'=>'a',
            'mail'=> array(0 => 'a1@mail.com', 1 => 'a2@mail.com')
        ),
        1 => array(
            'id'=>2,
            'name'=>'b',
            'mail'=> array(0 => 'b1@mail.com', 1 => 'b2@mail.com')
        )
    );
    
[/code]

となります。

ということは

[code]

    echo $value["mail"][0];//mail配列の1番目の要素を取り出す
    echo $value["mail"][1];//mail配列の2番目の要素を取り出す
    
[/code]

という記述の書き方がforeach文の中でかけると思います。  
これが理解できれば各配列の取り出し方は理解できると思います。


CC BY-SA 4.0
2021-01-12T00:17:06.770
73231
2021-01-12T00:17:06.770
22665
73215
answer