【发布时间】:2020-12-12 22:20:05
【问题描述】:
我有课
class Data {
static $array = [
'k1' => [
'k2' => 'val1',
],
'a1' => [
'a2' => [
'a3' => 'val2',
]
],
];
public static function getValue(string $key) {
$keys = explode('|', $key);
$array = self::$array;
$lastKey = end($keys);
foreach($keys as $key) {
if (!isset($array[$key])) {
return '';
}
if (is_array($array[$key])) {
$array = $array[$key];
} elseif($key == $lastKey) {
return $array[$key];
}
}
}
}
现在我想要那个
Data::getValue('k1|k2') 将返回 val1
Data::getValue('a1|a2|a3') 将返回 val2
等等
如果没有键则返回空字符串
有没有更好的方法?
【问题讨论】:
标签: php arrays multidimensional-array associative-array