7

我正在构建一个简单的商店系统,该系统从 csv 文件生成的数组中获取其产品。

我的csv如下:

pid;name;color
11149;Miro;"schwarz;weiß;blau;rot;gelb"
11004;FritzHansen;"buche;nussbau;schwarz;weiß;blau;hellblau;rot;grün;gelb;retro"

我正在使用以下脚本

if (($handle = fopen('_products.csv', 'r')) === false) {
    die('Error opening file');
}

$headers = fgetcsv($handle, 256, ';');
$_products = array();

while ($row = fgetcsv($handle, 256, ';')) {
    $_products[] = array_combine($headers, $row);
}
fclose($handle);

产生这个数组:

Array
(
    [0] => Array
        (
            [pid] => 11149
            [name] => Miro
            [color] => schwarz;weiß;blau;rot;gelb
        )

    [1] => Array
        (
            [pid] => 14215
            [name] => 1800
            [color] => schwarz;anthrazit
        )

    [2] => Array
        (
            [pid] => 11004
            [name] => FritzHansen
            [color] => buche;nussbau;schwarz;weiß;blau;hellblau;rot;grün;gelb;retro
        )
)

我希望键0-x[pid]相应“子”数组的值。

我该怎么做呢?谢谢!

4

2 回答 2

7

尝试这个

while ($row = fgetcsv($handle, 256, ';')) {
    $_products[$row[0]] = array_combine($headers, $row);
}
于 2013-03-27T13:27:49.490 回答
0

这应该做你需要的:

$products = array();

foreach  ($_products as $product)
{
  $products[$product['pid']] = $product;
}

print_r($products);
于 2013-03-27T13:23:12.653 回答