84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
Hi ,all
$myarr=["22"=>1,"33"=>2]
当我用
$return=array_map(function($v,$k){ //TODO },$myarr,array_keys($myarr));
$return 怎么保持原来的key呢?
我发现,对于
array_map(function($v){ //TODO },$myarr);
它是可以保持key的.
光阴似箭催人老,日月如移越少年。
array_map()这个函数当回调函数里面只有一个参数(即只有一个数组时),回调函数单独对这个数组的值进行操作,也可以返回键,但array_map()操作两个数组时,你还要返回键?仔细想一想也不可能,函数是给你返回第一个数组的键呢?还是第二个数组的键呢?所以多个数组就不给你键了,只给你返回值……1 想问的是,你是想实现什么样的功能呢?2 如果想保存第一个数组的键值,你可以这样:
$arr1 = array('b' => 'banana', 'g' => 'grage'); $arr2 = array('a' => 'apple', 'p' => 'pear'); $return = array_map(function($a, $b){ // to do something return 'I love ' . $a . ' and ' . $b; }, $arr1, $arr2); $return = array_combine(array_keys($arr1), $return);
array_map()这个函数当回调函数里面只有一个参数(即只有一个数组时),回调函数单独对这个数组的值进行操作,也可以返回键,但array_map()操作两个数组时,你还要返回键?仔细想一想也不可能,函数是给你返回第一个数组的键呢?还是第二个数组的键呢?所以多个数组就不给你键了,只给你返回值……
1 想问的是,你是想实现什么样的功能呢?
2 如果想保存第一个数组的键值,你可以这样: