のむログ

技術メモ / 車 / 音楽 / 雑記 / etc...

PHPで配列のドットアクセス

f:id:nomunomu0504:20190411144524j:plain:w0

結論

関数を作って擬似的にドットアクセスをします

<?php
function array_get(array $var, $format)
{
    foreach (explode('.', (string)$format) as $key)
    {
        if (!isset($var[$key]))
        {
            return null;
        }
        $var = $var[$key];
    }
    return $var;
}
<?php
$array = array(
    'A'=>array(
        'B'=>array(
            'C'=>'OK'
         )
    ),
);

var_dump(array_get($array, 'A.B.C')); // string(2) "OK"

var_dump(array_get($array, 'A.B'));   // array(1) { ["C"]=> string(2) "OK" }

var_dump(array_get($array, 'A.Z'));   // NULL