2016-07-22 14 views
0

から多次元配列を作成します:私は2つのアレイ持っている二つの配列

私が欲しいもの
$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' 
    ) 
); 

:これは私が他の側にはカテゴリの配列を持っているカテゴリグループの配列 ある

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')); 

を次のとおりです:

$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''においても同様です。それは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

のために働くだろうが、あなたはあなたのサブの最初のインデックスにすべてのデータを割り当てておきますあなたが1つの結果を得る理由です。

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']); 
     } 
    } 
} 

または単純な1次のコードを試してみてください。

foreach($categories as $k=>$v) 
    { 
     $result[$groups[$v['groupid']]][] = array($v['id'] => $v['name']); 
    } 
関連する問題