我正在尝试在循环中交换显示顺序
例如,我有一个值为1,2,3,4,5
的数组$array
,并希望按2,1,3,4,5
的顺序显示结果。我使用以下代码来达到这个目的,它对我有效:
<?php
$array = array(
1,
2,
3,
4,
5,
);
$tempArray = array();
$count = 1;
foreach($array as $key => $value){
$tempArray[$key] = $value;
if(in_array($count, array(1, 2))){
if($count == 2){
echo $tempArray[1] . '<br />';
echo $tempArray[0] . '<br />';
}
}else{
echo $value . '<br />';
}
$count++;
}
但我想知道是否有任何有效(更好)的方法可以做到这一点?
编辑:
$array = array(
1,
2,
3,
4,
5,
);
//Either
/*$temp = $array[1];
$array[1] = $array[0];
$array[0] = $temp;*/
//OR
list($array[1], $array[0]) = array($array[0], $array[1]);
foreach($array as $key => $value){
echo $value . '<br />';
}
无论哪种方式都适用于最小代码
谢谢你们!
要在不更改$array
中元素顺序的情况下更改$array
即array(1, 2, 3, 4, 5)
的显示顺序,您需要定义显示顺序,然后根据显示顺序进行显示:
$array = array(1, 2, 3, 4, 5);
$display = array_keys($array);
list($display[1], $display[0]) = array($display[0], $display[1]);
foreach ($display as $key)
{
$value = $array[$key];
printf("%d<br />n", $value);
}
正如您自己在注释中所写的那样,通过切换前两个元素(0
和1
,数组是从零开始的)的顺序(键),这是有效的。