从csv定义多维数组中的键

时间:2010-04-12 13:44:44

标签: php csv

我想比较两个数组,一个来自购物车,另一个来自csv文件解析。购物车中的数组如下所示:

Array
(
    [0] => Array
        (
            [id] => 7
            [qty] => 1
            [price] => 07.39
            [name] => walkthebridge
            [subtotal] => 7.39
        )

    [1] => Array
        (
            [id] => 2
            [qty] => 1
            [price] => 07.39
            [name] => milkyway
            [subtotal] => 7.39
        )
)

我的csv文件中的数组看起来像这样

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => walkthebridge
            [2] => 07.39
        )

    [1] => Array
        (
            [0] => 2
            [1] => milkyway
            [2] => 07.39
        )

并使用此代码构建

$checkitems = array();
    $file = fopen('checkitems.csv', 'r');

          while (($result = fgetcsv($file)) !== false) {

          $checkitems[] = $result;
          }

    fclose($file);

如何获取第二个数组中的键以匹配第一个数组中的键? (因此0将是id,1将是名称等等)

提前致谢

3 个答案:

答案 0 :(得分:2)

这样的东西?

while (($result = fgetcsv($file)) !== false) {
    $checkitems[] = array(
        'id' => $result[0],
        'name' => $result[1],
        'price' => $result[2]
    );
}

答案 1 :(得分:1)

让我们说$ oldArray是你的第二个'csv'数组,然后:

$newArray=array();
foreach($oldArray as $v){
  $t=array();
  $t['id']=$v[0];
  $t['name']=$v[1];
  // etc...
  $newArray[]=$t;
}

未经测试,但这是映射键值的一种方法..

答案 2 :(得分:0)

csv不是关联键值存储方法。如果你想这样做,你需要自己做。

无论如何,您都可以使用array_combine