将字符串转换为另一个数组

问题描述 投票:1回答:1

我有一个两个数组首先是:

$array1 = ['settings:rules:key','settings:scrum:way:other'];

我爆炸了$array1

$temp_array = explode(":",$array1);

现在我有另一个数组:

$array2 = [settings] => Array
        (  [rules] => Array
                (
                    [0] => Array
                        (
                            [key] => 
                            [showValueField] => 1
                     ) 
                )

这样的事情。

我需要使用第一个数组中给出的键访问第二个数组,如:

$array2['settings']['rules']['key']

我必须在爆炸后从第一个数组中获取此键

php arrays sorting
1个回答
1
投票

你可以用这种循环来做到这一点:

function getVal($path, $arr) {
    $current = $arr[array_shift($path)];
    while (count($path)) {
        $key = array_shift($path);
        if (!is_array($current) || !isset($current[$key]))
            return false; // protect against non-existing keys
        $current = $current[$key];
    }
    return $current;
}

//example used:
$arr = array("settings" => array("rules" => array("key" => "AAA")));
echo getVal(explode(":",'settings:rules:key'), $arr) . PHP_EOL;
© www.soinside.com 2019 - 2024. All rights reserved.