목차
PHP:如何使用内置函数处理数组的键值
Jun 06, 2016 pm 08:45 PM
php
需求
将
<code>$tempArray = array( 0=>"1:A", 1=>"2:B", 2=>"3:C", 3=>"4:D", 4=>"5:E", ); </code>
로그인 후 복사
로그인 후 복사
转成:
<code>$tempArray = array( "A"=>1, "B"=>2, "C"=>3, "D"=>4, "E"=>5, ); </code>
로그인 후 복사
로그인 후 복사
本来想使用php的内置函数array_map
来处理的,但是没有成功,除了遍历之外,我更想直接使用php的内置函数来实现,请问代码应该怎么写呢?
回复内容:
需求
将
<code>$tempArray = array( 0=>"1:A", 1=>"2:B", 2=>"3:C", 3=>"4:D", 4=>"5:E", ); </code>
로그인 후 복사
로그인 후 복사
转成:
<code>$tempArray = array( "A"=>1, "B"=>2, "C"=>3, "D"=>4, "E"=>5, ); </code>
로그인 후 복사
로그인 후 복사
本来想使用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>
로그인 후 복사
<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>
로그인 후 복사
补充:
<code>array_walk($array, function($val,$key,$arr){ $v = explode(":", $val); $arr[0][$v[1]] = $v[0]; },array(&$array1)); </code>
로그인 후 복사
这么处理也是可以的
<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>
로그인 후 복사
如果值里头的:
唯一的话可以这么做,为了显得狂拽一点缩成一句话了,可能有点难看懂。
用array_map
和explode
拆冒号
用array_combine
拼接
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

인기 기사
스플릿 소설을이기는 데 얼마나 걸립니까?
3 몇 주 전
By DDD
Repo : 팀원을 부활시키는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
헬로 키티 아일랜드 어드벤처 : 거대한 씨앗을 얻는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌

인기 기사
스플릿 소설을이기는 데 얼마나 걸립니까?
3 몇 주 전
By DDD
Repo : 팀원을 부활시키는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
헬로 키티 아일랜드 어드벤처 : 거대한 씨앗을 얻는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제
Gmail 이메일의 로그인 입구는 어디에 있나요?
7141
9


자바 튜토리얼
1534
14


라라벨 튜토리얼
1257
25


PHP 튜토리얼
1205
29


Cakephp 튜토리얼
1155
46



Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법
