Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中交换多维数组_Php_Arrays_Multidimensional Array - Fatal编程技术网

在PHP中交换多维数组

在PHP中交换多维数组,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我的PHP中有一个数组,如下所示: $contacts = [ [ "name" => "Peter Parker", "email" => "peterparker@mail.com", ], [ "name" => "Clark Kent", "email" => "clarkkent@mail.com", ], [

我的PHP中有一个数组,如下所示:

$contacts = [   
    [   
        "name" => "Peter Parker",    
        "email" => "peterparker@mail.com",    
    ], [   
        "name" => "Clark Kent",    
        "email" => "clarkkent@mail.com",    
    ], [   
        "name" => "Harry Potter",    
        "email" => "harrypotter@mail.com"
    ] 
];
如何交换最后一个元素和最后一个元素之前的元素?

这应该可以做到:

$length = count($contacts);
$last = $contacts[$length - 1];
$before_last = $contacts[$length - 2];
// swap
$contacts[$length - 2] = $last;
$contacts[$length - 1] = $before_last;
//
var_dump($contacts);
或者另一种方式:

$last = array_pop($contacts);
$before_last = array_pop($contacts);
// swap
array_push($contacts, $last);
array_push($contacts, $before_last);
//
var_dump($contacts);
// cut last 2
$temp = array_splice($contacts, -2);
// swap
array_push($contacts, $temp[1]);
array_push($contacts, $temp[0]);
//
var_dump($contacts);
或者另一种方式:

$last = array_pop($contacts);
$before_last = array_pop($contacts);
// swap
array_push($contacts, $last);
array_push($contacts, $before_last);
//
var_dump($contacts);
// cut last 2
$temp = array_splice($contacts, -2);
// swap
array_push($contacts, $temp[1]);
array_push($contacts, $temp[0]);
//
var_dump($contacts);