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 に答える