2016-07-22 156 views
0

多維陣列I有兩個數組:創建從兩個陣列

groups = array (
    array (1 => string 'INFORMATIQUE ET MULTIMEDIA'), 
    array (2 => string 'VEHICULES'), 
    array (3 => string 'IMMOBILIER'), 
    array (4 => string 'POUR LA MAISON ET JARDIN'), 
    array (5 => string 'HABILLEMENT ET BIEN ETRE'), 
    array (6 => string 'LOISIRS ET DIVERTISSEMENT'), 
    array (7 => string 'EMPLOI ET SERVICE'), 
    array (8 => string 'ENTREPRISE'), 
    array (9 => string 'AUTRES')); 

這是類別組的陣列 我在另一側的類別的數組:

$categories = array (
    array (
     'id' => string '1' , 
     'name' => string 'Téléphones' , 
     'groupid' => string '1' 
    ), 
    array (
     'id' => string '2', 
     'name' => string 'Tablette' , 
     'groupid' => string '1' 
    ), 
    array (
     'id' => string '3' , 
     'name' => string 'Voitures' , 
     'groupid' => string '2' 
    ), 
    array (
     'id' => string '4' , 
     'name' => string 'Motos', 
     'groupid' => string '2' 
    ) 
); 

我想要的是:

$result = array (
    'INFORMATIQUE ET MULTIMEDIA' => 
    array (
     1 => string 'Téléphones', 
     2 => string 'Tablette' 
    ) 
    'VEHICULES' => 
    array (
     4 => string 'Motos', 
     4 => string 'Motos' 
    ) 
); 

這是我的代碼,但它不起作用,但問題是,它記錄RDS一行:

foreach($groups as $id => $name) 
    { 
     $n = 1; 
     foreach($categories as $k=>$v) 
     { 
      if($v['groupid'] == $id){ 
       $result[$name] = array_fill($v['id'], 1, $v['name']); 
       $n ++; 
      } 
     } 
    } 
+0

它不工作.. – Codinga

+0

檢查一次,我與輸出link.thanks –

+0

在你的輸出數組鍵的回答是在''VEHICULES''這是不正確的一樣。它應該是3,4而不是4,4 –

回答

0

試試這個代碼,它會爲你

<?php 
$result = null; 
foreach($goups as $key => $value) 
    foreach($categories as $categorie) 
     if( $key == $categorie['groupid']) 
      $result[$value][] = $categorie['name'] 

?> 
+1

這段代碼是否給出了你所顯示的確切輸出? –

0

你得到最正確的代碼工作,但你保持在你的分的第一指標分配給所有數據數組,這就是爲什麼你會得到一個單一的結果。嘗試下面

foreach($groups as $id => $name) 
{ 
    $n = 1; 
    foreach($categories as $k=>$v) 
    { 
     if($v['groupid'] == $id){ 
      $result[$name][$n] = $['name']; 
      $n++; 
     } 
    } 
} 
0
foreach($groups as $id => $name) 
{ 
    foreach($categories as $k=>$v) 
    { 
     if($v['groupid'] == $id){ 
      $result[$name][] = array($v['id'] => $v['name']); 
     } 
    } 
} 

或一個簡單的代碼。

foreach($categories as $k=>$v) 
    { 
     $result[$groups[$v['groupid']]][] = array($v['id'] => $v['name']); 
    }