2011-07-31 47 views
1

我有這個陣列使用ExtJS的形式提交:如何處理由表單提交的複雜PHP數組?

$submittedFormaddress = array('city' => array('london', 'boston', 'paris'), 
'country' => array('UK', 'USA', 'FRANCE'), 
'zip' => array('22222', '33333', '44444')); 

我怎麼能自動創建以下數組從$ submittedFormaddress?

$clientAddress=array('address1'=>array 
('city'=>'london','country'=>'UK','zip'=>'2222'),'address2'=>array 
('city'=>'boston','country'=>'USA','zip'=>'3333'),'address3'=>array 
('city'=>'paris','country'=>'FRANCE','zip'=>'44444')); 

回答

1

我會建議使用通過foreach()循環和深入。

我試圖讓每個變量名稱描述:

<?php 
foreach ($submittedFormaddress as $address_part => $part_array) { 
    foreach($part_array as $index => $name) { 
     $clientAddress['address' . ($index + 1)][$address_part] = $name; 
    } 
} 
?> 

Working Example

1
for ($i = 0; $i < count($submittedFormaddress['city']); $i++) 
{ 
    $clientAddress['address'.$i] = array(
     'city' => $submittedFormaddress['city'][$i], 
     'country' => $submittedFormaddress['country'][$i], 
     'zip' => $submittedFormaddress['zip'][$i], 
    ); 
} 
+1

我可以建議你使用'array_keys'使溶液少了幾分脆弱 – troelskn

+0

這將創建一個以'ADDRESS0數組鍵',而不是像OP所示的'address1'。 –

+0

感謝您的回答,但請不要說,我不知道哪些表單字段被提交,因此我不應該手動設置它們。您的代碼對於深入理解數組和更好地理解數組非常有用。 –