遍历后跟字符串模式的关联数组?



我有一个多维关联数组,如下所示

$data = Array
(
[store_name] => Jota
[social] => Array
(
[fb] => 78
[youtube] => 34
[twitter] => 97
[linkedin] => 23
[pinterest] => 12
[instagram] => 93
[flickr] => 45
)
)

输入到我的程序是一个字符串这是由上面数组中的键组成的,键之间用括号分隔。如

$input = "data[social][fb]"

问题1我如何遍历上面的数组根据输入字符串模式&访问$data["social"]["fb"]?

问题2

如何更新上面数组中的值,然后是字符串模式?

$pattern = "data[social][fb];
$value = "foo";
update_array( $data,  $pattern, $value);

您可以使用正则表达式提取键,然后迭代地挖掘数据结构:

function getDeep($data, $str) {
preg_match_all("#[(.*?)]#", $str, $keys, PREG_PATTERN_ORDER);
foreach ($keys[1] as $key) $data = $data[$key];
return $data;
}

像这样运行:

$data = [
"store_name" => "Jota",
"social" => [
"fb" => 78,
"youtube" => 34,
"twitter" => 97,
"linkedin" => 23,
"pinterest" => 12,
"instagram" => 93,
"flickr" => 45,
]
];
$input = "data[social][fb]";
echo getDeep($data, $input);

最新更新