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

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

Jun 06, 2016 pm 08:45 PM
php

需求

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

转成:

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

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

回复内容:

需求

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

转成:

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

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

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

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

$result = array();

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

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

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

array_mapexplode拆冒号
array_combine拼接

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

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 Installations- und Upgrade-Anleitung für Ubuntu und Debian

CakePHP-Projektkonfiguration CakePHP-Projektkonfiguration Sep 10, 2024 pm 05:25 PM

CakePHP-Projektkonfiguration

CakePHP Datum und Uhrzeit CakePHP Datum und Uhrzeit Sep 10, 2024 pm 05:27 PM

CakePHP Datum und Uhrzeit

CakePHP-Datei hochladen CakePHP-Datei hochladen Sep 10, 2024 pm 05:27 PM

CakePHP-Datei hochladen

CakePHP-Routing CakePHP-Routing Sep 10, 2024 pm 05:25 PM

CakePHP-Routing

Besprechen Sie CakePHP Besprechen Sie CakePHP Sep 10, 2024 pm 05:28 PM

Besprechen Sie CakePHP

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein Dec 20, 2024 am 11:31 AM

So richten Sie Visual Studio-Code (VS-Code) für die PHP-Entwicklung ein

CakePHP-Kurzanleitung CakePHP-Kurzanleitung Sep 10, 2024 pm 05:27 PM

CakePHP-Kurzanleitung

See all articles