Heim > Backend-Entwicklung > PHP-Tutorial > PHP:如何使用内置函数处理数组的键值

PHP:如何使用内置函数处理数组的键值

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-06 20:45:11
Original
1033 Leute haben es durchsucht

需求

<code>$tempArray = array(
    0=>"1:A",
    1=>"2:B",
    2=>"3:C",
    3=>"4:D",
    4=>"5:E",
);
</code>
Nach dem Login kopieren
Nach dem Login kopieren

转成:

<code>$tempArray = array(
    "A"=>1,
    "B"=>2,
    "C"=>3,
    "D"=>4,
    "E"=>5,                 
);
</code>
Nach dem Login kopieren
Nach dem Login kopieren

本来想使用php的内置函数array_map来处理的,但是没有成功,除了遍历之外,我更想直接使用php的内置函数来实现,请问代码应该怎么写呢?

回复内容:

需求

<code>$tempArray = array(
    0=>"1:A",
    1=>"2:B",
    2=>"3:C",
    3=>"4:D",
    4=>"5:E",
);
</code>
Nach dem Login kopieren
Nach dem Login kopieren

转成:

<code>$tempArray = array(
    "A"=>1,
    "B"=>2,
    "C"=>3,
    "D"=>4,
    "E"=>5,                 
);
</code>
Nach dem Login kopieren
Nach dem Login kopieren

本来想使用php的内置函数array_map来处理的,但是没有成功,除了遍历之外,我更想直接使用php的内置函数来实现,请问代码应该怎么写呢?

一定要用array_map(不支持key),这是一个方法.

<code>$tempArray = array(
    0=>"1:A",
    1=>"2:B",
    2=>"3:C",
    3=>"4:D",
    4=>"5:E",
);

$result = array();

array_map(function($value) use (&$result) {
    list($k,$v) = explode(":", $value);
    $result[$k] = $v;
},$tempArray);
</code>
Nach dem Login kopieren

<code>$array = array(
    0=>"1:A",
    1=>"2:B",
    2=>"3:C",
    3=>"4:D",
    4=>"5:E",
);
//处理
$array1 = array();
array_walk($array, function($val,$key,$fix) use(&$array1){ 
    $v = explode($fix, $val);
    $array1[$v[1]] = $v[0];   
},':');
var_dump($array1); 
/* 输出
array (size=5)
  'A' => string '1' (length=1)
  'B' => string '2' (length=1)
  'C' => string '3' (length=1)
  'D' => string '4' (length=1)
  'E' => string '5' (length=1)
*/
</code>
Nach dem Login kopieren

补充:

<code>array_walk($array, function($val,$key,$arr){ 
    $v = explode(":", $val);
    $arr[0][$v[1]] = $v[0];   
},array(&$array1));
</code>
Nach dem Login kopieren

这么处理也是可以的

<code>$arr = ["1:A", "2:B", "3:C", "4:D", "5:E"];

$arr = json_decode("{".implode(',', array_map(function($item){
    return preg_replace('/(.+?):(.+?)/', '"$2":"$1"', $item);
}, $arr))."}", true);
print_r($arr);
/** output
Array
(
    [A] => 1
    [B] => 2
    [C] => 3
    [D] => 4
    [E] => 5
)
**/
</code>
Nach dem Login kopieren

如果值里头的:唯一的话可以这么做,为了显得狂拽一点缩成一句话了,可能有点难看懂。

array_mapexplode拆冒号
array_combine拼接

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
Aktuelle Ausgaben
PHP-Datenerfassung?
Aus 1970-01-01 08:00:00
0
0
0
PHP-Erweiterung intl
Aus 1970-01-01 08:00:00
0
0
0
Wie man PHP gut lernt
Aus 1970-01-01 08:00:00
0
0
0
Mehrere PHP-Versionen
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage