PHP怎么实现数组键名不变,值互换?

$arr = array('a'=>'aaa','b'=>'bbb');
转变为
$arr = array('a'=>'bbb','b'=>'aaa');
ITMISS
浏览 487回答 7
7回答

慕工程0101907

$arr = array('a'=>'aaa','b'=>'bbb'); $arr_new = array_combine(array_keys($arr),array_reverse(array_values($arr))); var_dump($arr_new); =============哎,迟了一步,@熊猫桑 握爪

冉冉说

代码写的有点烂,如果有更好方法的话欢迎交流: <?php function arraySwap($arr) { $keys = array_keys($arr); $values = array_reverse(array_values($arr)); $result = array_combine($keys, $values); return $result; } $arr = array('a'=>'aaa','b'=>'bbb'); var_export(arraySwap($arr));

MMMHUHU

function convert($array){ $arrayValue = array_values($array); foreach ($array as $key => $value) { $array[$key] = array_pop($arrayValue); } return $array; }

慕桂英546537

list($a['b'], $a['a']) = array_values($a);

守候你守候我

我不知道php里有没有类似js的写法,不过所有语言通用的方法就是用一个中间变量,伪代码 t = a a = b b = t 这样就能交换两个变量的值了。如果你要什么原生的方法大概是没有的,但php7.1支持解构赋值,应该也可以迂回解决这个问题

神不在的星期二

实现的比较粗糙,思路就是: 先存储第一个的键和值,循环到第2个时,进行交换: <?php $arr = array('a'=>'aaa','b'=>'bbb'); function zhuan($srr){ $temp = array(); // 临时存储 foreach($srr as $key=>$value){ if( !count($temp) ){ $temp = array( 'key'=> $key, 'value'=> $value ); }else{ $srr[ $temp['key'] ] = $value; $srr[ $key ] = $temp['value']; } } return $srr; } print_r( zhuan($arr) );

慕雪6442864

新建临时变量存放吧
打开App,查看更多内容
随时随地看视频慕课网APP