$arr = array('a'=>'aaa','b'=>'bbb');
转变为
$arr = array('a'=>'bbb','b'=>'aaa');
7 回答
慕工程0101907
TA贡献1887条经验 获得超5个赞
$arr = array('a'=>'aaa','b'=>'bbb');
$arr_new = array_combine(array_keys($arr),array_reverse(array_values($arr)));
var_dump($arr_new);
=============
哎,迟了一步,@熊猫桑 握爪
冉冉说
TA贡献1877条经验 获得超1个赞
代码写的有点烂,如果有更好方法的话欢迎交流:
<?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
TA贡献1834条经验 获得超8个赞
function convert($array){
$arrayValue = array_values($array);
foreach ($array as $key => $value) {
$array[$key] = array_pop($arrayValue);
}
return $array;
}
守候你守候我
TA贡献1802条经验 获得超10个赞
我不知道php里有没有类似js的写法,不过所有语言通用的方法就是用一个中间变量,伪代码
t = a
a = b
b = t
这样就能交换两个变量的值了。如果你要什么原生的方法大概是没有的,但php7.1支持解构赋值,应该也可以迂回解决这个问题
神不在的星期二
TA贡献1963条经验 获得超6个赞
实现的比较粗糙,思路就是: 先存储第一个的键和值,循环到第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) );
- 7 回答
- 0 关注
- 486 浏览
添加回答
举报
0/150
提交
取消