php flattening嵌套数组

时间:2014-10-24 18:40:07

标签: php multidimensional-array php-5.5

我有一个像这样的数组

$ array:

{    name   : xyz
     version  : Array[2]
     {
         0 : Array[2]
         {
             id : 1
             batch : 1
         }
         1 : Array[2]
         {
             id : 2
             batch : 2
         } 
     }
}

如何创建这样的数组:

$results[] = 
name:xyz, version:0, id:1, batch:1
name:xyz, version:1, id:2, batch:2

我想要一个重复公共字段的数组。

1 个答案:

答案 0 :(得分:0)

你的意思是:

$results = array();
$results[] = array('name' => 'xyz', 'version' => 0, 'id' => 1, 'batch' => 1);
$results[] = array('name' => 'xyz', 'version' => 1, 'id' => 1, 'batch' => 1);

然后通过$ results [0] ['name']访问第一行 或第二行$ results [1] ['name']

修改

要从$ array转换为$ results,我必须假设你的$数组看起来像这样。

$array = 
array('name'    => 'xyz', 
      'version' => array(
                         0 => array(
                                    'id' => 1, 
                                    'batch' => 1
                                    ),
                         1 => array(
                                    'id' => 2, 
                                    'batch' => 2
                                    )
                         )
      );

然后

$results = array();
$name = $array['name'];
foreach($array['version'] as $version => $idandbatch)
{
    $results[] = array('name' => $name,
                       'version' => $version,
                       'id' => $idandbatch['id'],
                       'batch' => $idandbatch['batch']);
}

您可以访问数组

foreach($results as $values)
{
    echo $values['name'];
    echo $values['version'];
    echo $values['id'];
    echo $values['batch'];
}