映射多维数组的关联元素以形成平面关联数组

问题描述 投票:0回答:4

我使用

array_combine()
没有成功。 谁能帮我从两行中的数据生成一个平面关联数组?

array
  0 => 
    array
      0 => 
        array
          'traitvalue01' => string 'width'
          'traitvalue02' => string 'Length'
          'traitvalue03' => string 'Top'
          'traitvalue04' => string 'Bottom'
  1 => 
    array
      0 => 
        array
          'trait01' => string '7 in'
          'trait02' => string '25 in'
          'trait03' => string '3 in'
          'trait04' => string '3 in'

预期结果:

array (
    'width'  => '7 in',
    'Length' => '25 in',
    'Top'    => '3 in',
    'Bottom' => '3 in',
)
php arrays multidimensional-array mapping associative-array
4个回答
1
投票

这是我的解决方案:

<?php

$a = array(
        array(
            array(
                'traitvalue01' => 'width',
                'traitvalue02' => 'Length',
                'traitvalue03' => 'Top',
                'traitvalue04' => 'Bottom'
            )
        ),
        array(
            array(
              'trait01' => '7 in',
              'trait02' => '25 in',
              'trait03' => '3 in',
              'trait04' => '3 in'
            )
        )
    );

print_r(array_combine($a[0][0], $a[1][0]));

?>

这是输出:

Array
(
    [width] => 7 in
    [Length] => 25 in
    [Top] => 3 in
    [Bottom] => 3 in
)

1
投票

确保仔细检查 - 您可能将错误的数组传递给 array_combine()。

这是我为您整理的一个示例。 您可以通过 PHP 二进制文件运行它来查看结果(这是正确的)。

<?php
    $trait_array = array();
    array_push($trait_array, array(array('traitvalue01' => 'width', 'traitvalue02' => 'Length', 'traitvalue03' => 'Top', 'traitvalue04' => 'Bottom')));
    array_push($trait_array, array(array('trait01' => '7 in', 'trait02' => '25 in', 'trait03' => '3 in', 'trait04' => '3 in')));
    $result_array = array_combine($trait_array[0][0],$trait_array[1][0]);
    echo(print_r($result_array,1));
?>

1
投票

你尝试使用 array_combine 吗?

$myarr = array(
              0=>array(
                  0=>array( 
                     'traitvalue01' => 'width',
                     'traitvalue02' => 'Length',
                     'traitvalue03' =>'Top',
                     'traitvalue04' => 'Bottom')),
             1=>array(
                  0=>array( 
                     'trait01' =>'7 in',
                     'trait02' => '25 in',
                     'trait03' => '3 in',
                     'trait04' => '3 in'))
          );

print_r(array_combine($myarr[0][0],$myarr[1][0]));

结果: 大批 ( [宽度] => 7 英寸 [长度] => 25 英寸 [顶部] => 3 英寸 [底部] => 3 英寸 )

并且你可以动态地做到这一点。如你所愿......简单。


0
投票

你应该这样做:

> $a = unset($yourArray[0][$key]); 
> $b = unset($yourArray[1][$key]);
> array_combine($a, $b);
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.