Php 逐行循环多维数据

Php 逐行循环多维数据,php,arrays,Php,Arrays,我试图循环通过这个数组,以便在每次迭代中并排输出 $cars = [ 'BMW' => [ 'Year' => '2020', 'Body' => 'Sedan', 'Mileage' => '100' ], 'Ford' => [ 'Year' => '2019', 'Body' => 'SUV', 'Mileage' => '

我试图循环通过这个数组,以便在每次迭代中并排输出

$cars = [
    'BMW' => [
        'Year' => '2020',
        'Body' => 'Sedan',
        'Mileage' => '100'
    ],
    'Ford' => [
        'Year' => '2019',
        'Body' => 'SUV',
        'Mileage' => '500'
    ]
];

$count = count(reset($cars));
for($i=0; $i<$count; $i++) {
    foreach($cars as $key => $value) {
        echo $cars[$key][$i]. '<br>';
    }
}
2020,2019
Sedan,SUV
100,500
我已经搜索了一些链接,但没有一个是特定于多维数组的


您提到的另一个问题是关于拥有独立的数据数组,您可以通过将主数组拆分为多个部分来模拟这些数据数组

此解决方案假定所需值的所有键都在第一项中(如您的示例中,它们都有3个值),并在第一个数组元素上循环,并使用
array\u column()
从该键的所有主数组元素中提取所有值。然后
内爆()
将这些值作为CSV列表

foreach ( $cars[array_keys($cars)[0]] as $key => $value)    {
    echo implode(",", array_column($cars, $key)).PHP_EOL;
}
这与你的测试数据给出

2020,2019
Sedan,SUV
100,500

您只需将所需的数组值存储在另一个数组中,然后将其内爆或根据需要使其工作即可。请看下面的代码

$cars = [
        'BMW' => [
            'Year' => '2020',
            'Body' => 'Sedan',
            'Mileage' => '100'
        ],

        'Ford' => [
            'Year' => '2019',
            'Body' => 'SUV',
            'Mileage' => '500'
        ],

    ];

    $year = [];
    $body = [];
    $milage = [];

foreach( $cars as  $key => $car ){
  if( $car['Year'] ){
      $year[] = $car['Year'];
  }
  if( $car['Body'] ){
      $body[] = $car['Body'];
  }
  if( $car['Mileage'] ){
      $milage[] = $car['Mileage'];
  }
}

var_dump(implode( ',', $year));
var_dump(implode( ',', $body));
var_dump(implode( ',', $milage));
将为您提供以下输出:

string(9) "2020,2019" string(9) "Sedan,SUV" string(7) "100,500"

非常感谢。工作如期。谢谢你,图欣。