什么是最有效的方式来合并几个php数组?
问题描述:
我从表单字段提交多个阵列看起来像这样什么是最有效的方式来合并几个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);
答
$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
稍作修改供我使用,但效果很好 - 谢谢。 –
答
也许使用声压级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
是的,这确实很有趣,比我想象的更清晰。 –
我知道这之前已经在这里问。 –
'foreach()'循环非常高效 – MonkeyZeus
http://stackoverflow.com/questions/8561987/php-merge-two-arrays – Jack