我有一个非常简单的数组,如下所示:
Array ( [friend_id] => 180 [user_id] => 175 )
我想要做的只是切换值,以便成为:
Array ( [friend_id] => 175 [user_id] => 180 )
PHP中有没有优雅的非静态方式来做到这一点?
你可以使用array_combine和array_reverse
$swapped = array_combine(array_keys($arr), array_reverse(array_values($arr)));
否。使用临时值:
$temp = $array['friend_id'];
$array['friend_id'] = $array['user_id'];
$array['user_id'] = $temp;
有点长,但我认为它满足您对 2 个元素数组的要求,就像您在示例中使用的那样:
// your input array = $yourarray;
$keyarray = array_keys($yourarray);
$valuearray = array_values($yourarray);
/// empty input array just to make sure
$yourarray = array();
$yourarray[$keyarray[0]] = $valuearray[1];
$yourarray[$keyarray[1]] = $valuearray[0];
基本上Orangepill的答案是手动完成的......
使用array_flip怎么样?
数组 array_flip ( 数组 $trans )
$myar = array('apples', 'oranges', 'pineaples'); print_r($myar);
print_r(array_flip($myar));
Array
(
[0] => apples
[1] => oranges
[2] => pineaples
)
Array
(
[apples] => 0
[oranges] => 1
[pineaples] => 2
)
$tmp = $array['user_id'];
$array['user_id'] = $array['friend_id'];
$array['friend_id'] = $tmp;