2013-03-27 14 views
6

私はcsvファイルで生成された配列からその製品を取り出すシンプルなショップシステムを構築しています。fgetcsv():最初の行をキー

私の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); 

次TEを使用しています:

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]の値。

どうすればよいですか? ありがとう!

答えて

6

この

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

は '$行[ 'pidを']'にそれを編集したい場合がありますしてみてください。 – MichaelRushton

+0

yup .. :) ..ありがとう.. – bipen

+0

'$ row ['pid']'は 'Undefine index:pid'警告を出しましたが、' $ row [0] 'はそのトリックを行いました。ありがとう! – fhirner

0

これは、あなたが必要なものを行う必要があります。

$products = array(); 

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

print_r($products); 
関連する問題