2014-02-28 36 views
0

我從表單字段提交多個陣列看起來像這樣什麼是最有效的方式來合併幾個php數組?

[budget_type_id] => Array 
    (
     [0] => 1 
     [1] => 2 
     [2] => 2 
     [3] => 5 
    ) 

[budget_f1] => Array 
    (
     [0] => 100 
     [1] => 200 
     [2] => 300 
     [3] => 400 
    ) 

[budget_f2] => Array 
    (
     [0] => 100 
     [1] => 200 
     [2] => 300 
     [3] => 400 
    ) 

我需要合併這些數據看起來像這樣

[arr1] => Array 
    (
     [budget_type_id] => 1 
     [budget_f1] => 100 
     [budget_f2] => 100 
    ) 
[arr2] => Array 
    (
     [budget_type_id] => 2 
     [budget_f1] => 200 
     [budget_f2] => 200 
    ) 

[arr3] => Array 
    (
     [budget_type_id] => 2 
     [budget_f1] => 300 
     [budget_f2] => 300 
    ) 
[arr4] => Array 
    (
     [budget_type_id] => 5 
     [budget_f1] => 400 
     [budget_f2] => 400 
    ) 

什麼是合併這些數據最快/最有效的方法?

UPDATE 我需要略作修改:

$contractBudgets = array(); 

for($i = 0 ; $i < count($formfields['budget_type_id']) ; $i++){ 

    $newBudget = $this->modx->newObject('ContractBudget'); 

    $newBudget->set('budget_type_id',$formfields['budget_type_id'][$i]);  
    $newBudget->set('budget_f1',$formfields['budget_f1'][$i]); 
    $newBudget->set('budget_f2',$formfields['budget_f2'][$i]); 

    $contractBudgets[] = $newBudget; 
} 

$newContract->addMany($contractBudgets); 
+2

我知道這之前已經在這裏問。 –

+0

'foreach()'循環非常高效 – MonkeyZeus

+0

http://stackoverflow.com/questions/8561987/php-merge-two-arrays – Jack

回答

0
$merged = array(); 
for($i = 0 ; $i < count($budget_type_id) ; $i++){ 
    $merged[] = array(
     'budget_type_id'=>$budget_type_id[$i], 
     'budget_f1' => $budget_f1[$i], 
     'budget_f2' => $budget_f2[$i] 
    ); 
} 
+1

稍作修改供我使用,但效果很好 - 謝謝。 –

3

也許使用聲壓級MultipleIterator

$budget_type_id = array(1, 2, 2, 5,); 
$budget_f1 = array(100, 200, 300, 400,); 
$budget_f2 = array(100, 200, 300, 400,); 

$mi = new MultipleIterator(multipleIterator::MIT_KEYS_ASSOC); 
$mi->attachIterator(new ArrayIterator($budget_type_id), 'budget_type_id'); 
$mi->attachIterator(new ArrayIterator($budget_f1), 'budget_f1'); 
$mi->attachIterator(new ArrayIterator($budget_f2), 'budget_f2'); 

$newArray = array(); 
foreach($mi as $details) { 
    $newArray[] = $details; 
} 

var_dump($newArray); 
+0

這也很完美。很有意思。 –

+0

是的,這確實很有趣,比我想象的更清晰。 –

相關問題