有没有更好的方法来重新排列这个数组?

时间:2013-01-03 22:53:26

标签: php arrays function variables

是否有更好的(更有效的方法)使第一个和最后一个键在这个数组中交换位置?

 <?php 

 function jim_is_jill($user_names) {
    $user_A = $user_names[0];
    $user_B = $user_names[1];
    $user_C = $user_names[2];
    $user_D = $user_names[3];

    $new_arr = array($user_D, $user_B, $user_C, $user_A);

    return $new_arr;

 }

 $user_names = array('Jim', 'Josh', 'Jamie', 'Jill');
 print_r(jim_is_jill($user_names));
 ?>

2 个答案:

答案 0 :(得分:2)

试试这个:

list($user_names[0],$user_names[3]) = array($user_names[3],$user_names[0]);

一般来说:

list($a,$b) = array($b,$a);

这是在不使用任何临时变量的情况下交换两个变量的最佳方法。

您还可以创建一个函数来交换任意条目:

function swap(&$arr,$x,$y) {
    list($arr[$x],$arr[$y]) = array($arr[$y],$arr[$y]);
}

答案 1 :(得分:1)

如何像这样交换它们:

...
$temp = $user_names[0];
$user_names[0] = $user_names[3];
$user_names[3] = $temp;
...