Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更改多数组的键_Php_Multidimensional Array - Fatal编程技术网

Php 更改多数组的键

Php 更改多数组的键,php,multidimensional-array,Php,Multidimensional Array,有一个数组: $a =array[ "param1"=>[] "param2"=>[] "param3"=>[] ] function def($param){ return $param.date(); } 要返回一个新数组吗 $a =array[ def(param1)=>[] def(param2)=>[] def(param3)=>[]

有一个数组:

 $a =array[
      "param1"=>[]
      "param2"=>[]
      "param3"=>[]
      ]
function def($param){
      return $param.date();
}
要返回一个新数组吗

  $a =array[
      def(param1)=>[]
      def(param2)=>[]
      def(param3)=>[]
      ]
有人知道怎么做吗?

像这样:

$out_array = array_fill_keys(array_map(function($in) {
  // do stuff you need
  return $out;
}, array_keys($in_array)), array());

你是说像这样的事吗

这是一个相当冗长和肮脏的建议,使用其中一个可能有更好的方法,但下面是:

$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"
}

请注意,使用此方法可能会,也可能会遇到键冲突。

当数组包含13和31作为键时会发生什么?