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