PHP开关数组值


PHP switch array values

我有一个非常简单的数组,如下所示:

Array ( [friend_id] => 180 [user_id] => 175 )

我想做的只是切换值,以便达到以下目的:

Array ( [friend_id] => 175 [user_id] => 180 )

PHP中有什么优雅的非静态方法可以做到这一点吗?

您可以使用array_component和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_flicp怎么样?

array_flicp(array$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;