array_map多个array进行map的时候,丢失了key?

WBOY
Freigeben: 2016-06-06 20:20:42
Original
1309 Leute haben es durchsucht

Hi ,all

<code>$myarr=["22"=>1,"33"=>2]
</code>
Nach dem Login kopieren
Nach dem Login kopieren

当我用 

<code>$return=array_map(function($v,$k){
    //TODO
},$myarr,array_keys($myarr));
</code>
Nach dem Login kopieren
Nach dem Login kopieren

$return 怎么保持原来的key呢?

我发现,对于

<code>array_map(function($v){
    //TODO
},$myarr);
</code>
Nach dem Login kopieren
Nach dem Login kopieren

它是可以保持key的.

回复内容:

Hi ,all

<code>$myarr=["22"=>1,"33"=>2]
</code>
Nach dem Login kopieren
Nach dem Login kopieren

当我用 

<code>$return=array_map(function($v,$k){
    //TODO
},$myarr,array_keys($myarr));
</code>
Nach dem Login kopieren
Nach dem Login kopieren

$return 怎么保持原来的key呢?

我发现,对于

<code>array_map(function($v){
    //TODO
},$myarr);
</code>
Nach dem Login kopieren
Nach dem Login kopieren

它是可以保持key的.

array_map()这个函数当回调函数里面只有一个参数(即只有一个数组时),回调函数单独对这个数组的值进行操作,也可以返回键,但array_map()操作两个数组时,你还要返回键?仔细想一想也不可能,函数是给你返回第一个数组的键呢?还是第二个数组的键呢?所以多个数组就不给你键了,只给你返回值……
1 想问的是,你是想实现什么样的功能呢?
2 如果想保存第一个数组的键值,你可以这样:

<code>$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);
</code>
Nach dem Login kopieren
Verwandte Etiketten:
php
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage