我想合併數組,但想要交替順序。合併數組值,交替
$combined = array_merge($vars,$mods);
給我:一,二,三,1,2,3 ...
我想:一,1,二,二,三,3 ...
有沒有辦法做到這一點?
我想合併數組,但想要交替順序。合併數組值,交替
$combined = array_merge($vars,$mods);
給我:一,二,三,1,2,3 ...
我想:一,1,二,二,三,3 ...
有沒有辦法做到這一點?
您可以使用for
循環,並引用您正在組合的每個數組的索引。
$l = count($vars);
for ($i=0; $i < $l; $i++) {
$combined[] = $vars[$i];
$combined[] = $mods[$i];
}
在循環的每次迭代中,您將追加每個原始數組中的一個項目。這將實現交替效果。
正如史蒂夫指出,這可以更簡單地使用foreach
來完成:
foreach ($vars as $i => $value) {
$combined[] = $value;
$combined[] = $mods[$i];
}
我建議將它作爲一個函數來構建,以便在需要時可以在多個位置使用它。 –
完美的作品,謝謝! –
如果兩個數組中的鍵總是連續的,那麼可以用'foreach($ vars as $ i => $ value)替換前兩行{' – Steve
如果什麼陣列具有不同數量的項目?只需將大數組中的所有額外數據推到結果的最後? –
在我的表單中,這兩個字段的設置都是爲了使$ vars數組中的每個條目在$ mods數組中都有相同的條目。兩者將始終具有相同數量的值。 –
首先,你的陣列是什麼?請提供更多背景。 – timmyRS