#yyphp-quiz No.3: 多次元配列から要素を一撃で取り出す関数を実装して

<?php
/**
 * 多次元配列から任意の要素を取り出す
 * @param string $query クエリー
 * @param array $data クエリーにかける対象の配列
 * @return mixed 要素が見つからなかったらNULLを返す
 */
function arrayQuery(string $query, array $data)
{
    // eval等のメタ言語機能を使用しないで実装して
}

$data = [
    'a' => ['b' => ['c' => 'd']],
    'efg' => ['hij', 'lmn', 'opq'],
    's' => 't',
    'u'
];

assert(arrayQuery('.', $data) === $data);
assert(arrayQuery('...', $data) === $data);
assert(arrayQuery('.a', $data) === ['b' => ['c' => 'd']]);
assert(arrayQuery('.a.b', $data) === ['c' => 'd']);
assert(arrayQuery('.a.b.c', $data) === 'd');
assert(arrayQuery('.a.b.c.', $data) === 'd');
assert(arrayQuery('.efg.0', $data) === 'hij');
assert(arrayQuery('.0', $data) === 'u');
assert(arrayQuery('.x', $data) === null);
assert(arrayQuery('.x.x.x', $data) === null);

Select a repo