php 具有多个关联数组的 var,一次获取一个数组的值

php var with multiple assoc arrays, get values one array at a time

最初我使用上传的 .csv 文件并一次遍历一行值..使用下面的 while 循环。

 while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
     var_dump($data);
     $importIt = $repo->impThreeCSV($which, $data);
 }

我重做了 .csv 上传功能,现在是一个 Web 表单,我将 json 发送到 'save button' 上的 PHP 文件。我现在有一个包含多个关联数组的变量..

    $fd = json_decode($df, true);
    var_dump($fd);

例如,上面的转储包含多个数组,如下所示:即(~300 个类似的数组,如下所示)。

array (size=806)
  0 => 
    array (size=18)
      'ATM_ID' => string 'AFF-MIL-TWR' (length=11)
      'FAC_IDENT' => string 'AFF' (length=3)
      'LG_NAME' => string 'BLACH BLAH ACADEMY' (length=20)
      'BASIC_TP' => string 'MIL-TWR' (length=7)
      .................

P.S。不,我不能使用 pandas,我希望。

您需要执行一个 foreach 循环遍历每个数组,然后执行另一个 foreach 循环遍历您正在循环的数组的每个值。

$decodedJson = [
    [
        'ATM_ID' => 'AFF-MIL-TWR 1',
        'FAC_IDENT' => 'AFF',
        'LG_NAME' => 'BLACH BLAH ACADEMY',
        'BASIC_TP' => 'MIL-TWR',
    ],
    [
        'ATM_ID' => 'AFF-MIL-TWR 2',
        'FAC_IDENT' => 'AFF',
        'LG_NAME' => 'BLACH BLAH ACADEMY',
        'BASIC_TP' => 'MIL-TWR',
    ],
];

foreach ($decodedJson as $array) {
    foreach ($array as $item) {
        print $item; # => AFF-MIL-TWR 1
    }
}

假设您希望以与原始代码相同的方式处理数据,您只需使用如下内容:

foreach ($fd as $data) {
    $importIt = $repo->impThreeCSV($which, array_values($data));
}

注意我已经使用 array_values$data 从关联数组转换为数字索引数组,即与 fgetcsv returns 相同的格式。这可能 - 取决于您的 $repo->impThreeCSV 代码 - 不是必需的。