2015-09-04 125 views
0

我無法找到一種方法來獲取數組(元素ID)的元素並將它們添加到關聯數組($ choices ['id])的特定鍵中,以便它創建該數組的實例($ choices [])與$ id中的元素一樣多。將數組元素添加到關聯數組

我希望$ choices []的最終版本包含與$ id []中的元素一樣多的數組。

之後,我想重複這個過程part_numbers &數量。

// Create $choices array with keys only 
$choices = array(
    'id' => '', 
    'part_number' => '', 
    'quantity' => '', 
); 

// Insert $id array values into 'id' key of $choices[] 
$id = array('181', '33', '34'); 
+1

爲什麼不有一個數組有id,pn和qty而不是3個id在另一箇中,而3個pn在另一箇中......? – AbraCadaver

+0

您能否請您發佈自己最佳嘗試的代碼,並指出哪些工作不符合您的預期? – rodamn

+0

我正在收集每個選定項目(ID,PN,Qty)的三個數據。 @AbraCadaver。謝謝!而不是三個具有相應數據(ID:1,2,3)(PN:11,22,33)和(Qty:3,2,1)的字符串,我想這樣組織它:[1] ID:1 ,PN:11,數量:3 [2] ID:2,PN:22,數量:2和[3] ID:3,PN:33,數量:1。我樂意以任何方式組織這一點。 – JimB814

回答

0

如果我正確理解你的問題,你的意思是這樣的?

$choices = array(); 
$id = array('181', '33', '34'); 

foreach($id as $element) 
{ 
    $choices[] = array(
    'id' => $element, 
    'part_number' => '', 
    'quantity' => '', 
    ); 
} 

echo "<pre>"; 
print_r($choices); 
echo "</pre>"; 

輸出:

Array (
    [0] => Array 
     (
      [id] => 181 
      [part_number] => 
      [quantity] => 
     ) 

    [1] => Array 
     (
      [id] => 33 
      [part_number] => 
      [quantity] => 
     ) 

    [2] => Array 
     (
      [id] => 34 
      [part_number] => 
      [quantity] => 
     ) 

) 

編輯:

一個更通用的解決方案將是如下:

$choices = array(); 

$values = array('sku-123', 'sku-132', 'sku-1323'); 

foreach($values as $i => $value){ 
    if(array_key_exists($i, $choices)) 
    { 
     $choices[$i]['part_number'] = $value; 
    } 
    else 
    { 
     $choices[] = array(
     'id' => '', 
     'part_number' => $value, 
     'quantity' => '', 
    ); 
    } 
} 

這可用於陣列創建和插入,因此if/else塊。

+0

是的!感謝Martyn Shutt。我懷疑foreach循環是解決方案,但我無法正確地將它放在一起以使其工作。神奇而快速!謝謝! – JimB814

+0

@ JimB814很高興我能幫上忙。 –

+0

我剛剛發現,爲下一個數組($ part_numbers)重複此操作將創建三個新數組,而不是使用相同的三個數組。你能解決這個問題,還是應該提交一個新的問題? – JimB814