在开头移动节点(多维php数组)中的最后一个元素?

时间:2017-06-12 16:03:28

标签: php arrays multidimensional-array

大家好我想在开始时移动节点(多维php数组)中的最后一个元素......

这是我的阵列:

$arr= array(    
 array(2,3,4,5,1),
 array(3,4,5,6,2),
 array(4,5,6,7,3)    
);

这是我想要的输出:

Array ( 
 [0] => Array ( 
   [0] => 1 
   [1] => 2 
   [2] => 3 
   [3] => 4 
   [4] => 5 
 ) 
 [1] => Array ( 
   [0] => 2 
   [1] => 3 
   [2] => 4 
   [3] => 5 
   [4] => 6 
 ) 
 [2] => Array ( 
   [0] => 3 
   [1] => 4 
   [2] => 5 
   [3] => 6 
   [4] => 7 
 ) 
) 

我创建了这个可以正常工作的代码

$number= count($arr);

for($a= 0; $a < $number; $a++){
 $element=  $arr[$a][4];    
 unset($arr[$a][4]);
 array_unshift($arr[$a],$element);
}

但我知道是否还有其他更快更有效的方法...... 非常感谢,抱歉我的英语:)

2 个答案:

答案 0 :(得分:1)

根据您提供的输入和输出,可以更快地输入:

array_map('sort', $arr);

无论是跑得更快还是给出了理想的结果 - 我都不知道。

答案 1 :(得分:1)

正确答案,不依赖于数组内值的排序顺序。

foreach($array as &$element) {
 array_unshift($element,array_pop($element));
}