我有此數組:爆炸陣列的數據,並做出新的陣列
Array
(
[0] => Array
(
[0] => 1
[1] => a,b,c
)
[1] => Array
(
[0] => 5
[1] => d,e,f
)
)
我想最終的數組是這樣的:
Array
(
[0] => Array
(
[0] => 1
[1] => a
)
[1] => Array
(
[0] => 1
[1] => b
)
[2] => Array
(
[0] => 1
[1] => c
)
[3] => Array
(
[0] => 5
[1] => d
)
[4] => Array
(
[0] => 5
[1] => e
)
[5] => Array
(
[0] => 5
[1] => f
)
)
這是我做過什麼:
<?php
$array = array(array(1,"a,b,c"),array(5,"d,e,f"));
$temp=array();
$count = 0;
foreach($array as $arr){
$rows = explode(",",$arr[1]);
foreach($rows as $row){
$temp[$count] = $arr;
$temp[$count][1] = $row;
$count++;
}
}
print_r($temp);
?>
這完全有效,但我想知道是否有更好的方法來做到這一點。當我有大量數據時,這可能會非常緩慢。
使用循環通常將是最快的方式。通常緩慢是由低效循環引起的,但在這裏並不是這種情況。您的數據集必須是真正的MASSIVE,因爲這會對腳本的執行時間產生重大影響。 – Scopey
你是說這是做到這一點的最好方法嗎? – Prakash
是的。循環通常總是最快的方式。使用像'array_map'這樣的回調函數(不是這樣可以工作)會更慢。 – Scopey