2012-01-30 95 views
0

有人可以告訴我如何輕鬆格式數組與這樣的值? 我有一個CSV與值文件象下面這樣:如何將CSV格式化爲陣列?

27383,15.99 
80448,19.99 
132876,11.99 
150438,120 

這是格式,我想:

$array[0]['id'] = 27838 
$array[0]['price'] = 15.99 
$array[1]['id'] = 80448 
$array[2]['price'] = 19.99 

我現在擁有的是:

$data = file_get_contents('id_and_price.csv'); 
$data = explode(',', $data); 
print_r($data); 

//foreach($data as $d) { 
// echo $d; 
//} 

回答

3
<?php 
$f = fopen('filename', 'r'); 
$arr = array(); 
while ($l = fgetcsv($f)) { 
    $arr[] = array_combine(array('id', 'price'), $l); 
} 
var_dump($arr); 
?> 
0

你需要使用php爆炸... http://php.net/manual/en/function.explode.php

$csv = "piece1,piece2,piece3,piece4,piece5,piece6"; 
$array = explode(",", $csv); 
echo $array[0]; // piece1 
echo $array[1]; // piece2 
+0

只注意到你AREADY有這個!我會建議你是否擁有2個首要位置,以嘗試檢測奇數/均衡。設置一個計數$ i = 0。然後使用if($ i%)來檢測奇怪的nunbrs並使用它來修改你的數組鍵 – Nick 2012-01-30 21:39:52

4

你可以用fgetcsv()做到這一點很容易:

$arr = array(); 
$header = array('id', 'price'); 

$file = fopen('id_and_price.csv', 'r'); 
while($item = fgetcsv($file)) 
{ 
    $arr[] = array_combine($header, $item); 
} 

print_r($arr);