如果我有以下幾點:有沒有從第二個索引開始foreach的優雅方法,然後完成剩下的工作?
$a = array(
"one" => 1,
"two" => 2,
"three" => 3,
"seventeen" => 17
);
foreach ($a as $v) {
echo $v;
}
我怎樣才能使輸出:
2, 1, 3, 17
如果我有以下幾點:有沒有從第二個索引開始foreach的優雅方法,然後完成剩下的工作?
$a = array(
"one" => 1,
"two" => 2,
"three" => 3,
"seventeen" => 17
);
foreach ($a as $v) {
echo $v;
}
我怎樣才能使輸出:
2, 1, 3, 17
引述PHP Manual on Language Operators:
+運算返回附加到左手 陣列右手陣列;對於這兩個數組中存在的鍵,將使用左手陣列中的元素,而右邊數組中的匹配元素將被忽略。
$a = array(
"one" => 1,
"two" => 2,
"three" => 3,
"seventeen" => 17
);
$b = array_values($a);
echo implode(', ', array($b[1], $b[0]) + $b), PHP_EOL;
輸出:
2, 1, 3, 17
$values = array_values($a);
echo "{$values[1]}, {$values[0]}, "
foreach (array_slice($values, 2) as $v){
echo "$v, "
}
如果你關心最後一個逗號......
$values = array_values($a);
echo "{$values[1]}, {$values[0]}, "
$lastIndex = count($values) - 1;
foreach (array_slice($values, 2) as $k => $v){
echo $v;
if ($k != $lastIndex){
echo ", ";
}
}
你可以可能是這樣做的:
<?php
$my_array = array(...);
$keys = array_keys($my_array);
$second_key = $keys[1]; // if your array can be whatever size, probably want to check that first
echo $my_array[$second_key];
foreach ($my_array as $key => $value) {
if ($key == $second_key) {
continue;
}
echo $value;
}
?>
是否有這樣做的一個很好的目的是什麼?爲什麼不按照你想要的順序聲明數組? – wallyk 2015-02-23 20:09:34
這是我從數據庫查詢中獲得的順序。嗯,也許我應該問在MySQL部分? – rotaercz 2015-02-23 20:46:29
什麼*訂購規則*會根據需要訂購產品? - 除了「如果價值是'兩'」,我看不到一個。「沒有規則,沒有排序.. – user2864740 2015-02-23 21:07:28