2016-11-05 75 views
1

我有一個關聯數組,看起來像這樣:轉換關聯數組 - >分組的價值

enter image description here

我想把它轉換。 應該由「product_service_category_name」進行分組,它應該是這樣的:

$productServices = [ 
'' => [ 
    1 => 'Diverses Service #1', 
    2 => 'Diverses Service #2' 
], 
'Beratung' => [ 
    5 => 'Ernährungsberatung' 
], 
'Massagen' => [ 
    3 => 'Heilmassage', 
    4 => 'Shiatsu' 
] 
]; 

請照顧好擔心的是,該值可能爲空。

有人能幫助我嗎?

謝謝!

回答

0
function group($array) 
{ 
    $group = array(); 
    $key = 'product_service_category_name'; 
    foreach (array_values($array) as $values) { 

     if (empty($values[$key])) { 
      $ptr = 'empty'; 
     } 
     else { 
      $ptr = $values[$key]; 
     } 

     $new_key = $values['product_service_id']; 
     $group[$ptr][$new_key] = $values['product_service_name']; 
    } 
    return $group; 
} 

$grouped = group($ungrouped); 

Test Here

+0

你們是最棒的!非常感謝你!!! – Walhalla

0

你可以嘗試這樣的:

$productServices = []; 

foreach ($data as $value) { 

    $key = $value['product_service_category_name']; 

    if (!isset($productServices[$key])) { 
     $productServices[$key] = []; 
    } 

    $productServices[$key][] = $value['product_service_name']; 
} 

您將需要交換$data與任何變量被稱爲是捧在你的問題的陣列。這將不起作用的是該數組也被稱爲$productServices

希望這會有所幫助!