zor*_*anc 2 php arrays multidimensional-array
我有一个以下格式的数组:
Array (
[0] => Array
(
[option_id] => 10820
[option_name] => PREFIX_FIRST_OPT_KEY
[option_value] => FIRST_OPT_VALUE
[autoload] => yes
)
[1] => Array
(
[option_id] => 10821
[option_name] => PREFIX_SECOND_OPT_KEY
[option_value] => SECOND_OPT_VALUE
[autoload] => yes
)
[2] => Array
(
[option_id] => 10824
[option_name] => PREFIX_THIRD_OPT_KEY
[option_value] => SECOND_OPT_VALUE
[autoload] => yes
)
)
Run Code Online (Sandbox Code Playgroud)
用于获取具有以下结构的一维关联数组的适当函数是什么?
Array (
[FIRST_OPT_KEY] => FIRST_OPT_VALUE
[SECOND_OPT_KEY] => SECOND_OPT_VALUE
[THIRD_OPT_KEY] => THIRD_OPT_VALUE
)
Run Code Online (Sandbox Code Playgroud)
我只想将指示的值保留为新数组中的键值对,并忽略其余的 -PREFIX_是固定长度的。
我现在正在做什么:
foreach ( $the_original_array as $key => $value ) {
$new_key = substr($the_original_array[$key]['option_name'], 7);
$option_value = $the_original_array[$key]['option_value'];
$new_array[$new_key] = $option_value;
}
Run Code Online (Sandbox Code Playgroud)
但我觉得应该有一种更清洁/更有效的方法来实现这一点
如果您的 PHP >= 5.5:
要提取值:
$result = array_column($array, 'option_value', 'option_name');
Run Code Online (Sandbox Code Playgroud)
然后删除前缀:
$result = array_combine(
array_map(
function($k){
return str_replace('PREFIX_', '', $k);
},
array_keys($result)
), $result
);
Run Code Online (Sandbox Code Playgroud)