有一个数组:
$a =array[
"param1"=>[]
"param2"=>[]
"param3"=>[]
]
function def($param){
return $param.date();
}
想要返回一个新数组
$a =array[
def(param1)=>[]
def(param2)=>[]
def(param3)=>[]
]
有人知道怎么做吗?
答案 0 :(得分:1)
像这样:
$out_array = array_fill_keys(array_map(function($in) {
// do stuff you need
return $out;
}, array_keys($in_array)), array());
答案 1 :(得分:1)
你的意思是这样吗?
这是一个非常冗长(和肮脏)的建议,使用PHP's array methods之一可能有更好的方法,但这里有:
$array = array('123' => 'should be 6', '14' => 'should be 5', '12' => 'should be 3');
$new_array = array();
foreach ($array as $key => $val) {
$key_exp = str_split($key);
$new_key = 0;
foreach ($key_exp as $key_int) $new_key += $key_int;
$new_array[$new_key] = $val;
}
按预期提供此输出:
array(3) {
[6]=>
string(11) "should be 6"
[5]=>
string(11) "should be 5"
[3]=>
string(11) "should be 3"
}
请注意,您可能会,也可能会使用此方法遇到关键冲突。