[英]PHP CSV to Associative Array
我有一個CSV文件,我需要導入到一個關聯數組。 數據如下所示:
"General Mills Cereal",http://sidom.com/dyn_li/60.0.75.0/Retailers/Saws/120914_20bp4_img_8934.jpg,$2.25,"9-17.12 oz., select varieties","Valid Sep 14, 2012 - Sep 20, 2012",Saws,"Grocery"
我想把這個數據轉換成一個數組,我可以抓住這樣的值:
$items[$row]['title'];
$items[$row]['imgurl'];
$items[$row]['itemprice'];
$items[$row]['itemsize'];
$items[$row]['expir'];
$items[$row]['storename'];
$items[$row]['storetype'];
上面的元素對應於我的CSV文件。 如何將此文件導入此類數組?
我建議使用內置函數fgetcsv
還有一個簡單的用法示例。
fgetcsv()
將為您提供數字索引數組。
一旦你讀完所有記錄就說$rawData
,它的結構如下:
$rawData = array(0 => array(0 => "General Mills Cereal",
1 => "http://sidom.com/dyn_li/60.0.75.0/Retailers/Saws/120914_20bp4_img_8934.jpg"
2 => "$2.25",
3 => "9-17.12 oz.",
4 => "select varieties",
5 => "Valid Sep 14, 2012 - Sep 20, 2012",
6 => "Saws",
7 => "Grocery"),
...);
要將此$rawData
數組轉換$rawData
您想要的數組,您可以執行以下操作:
$fields = array('title', 'imgurl', 'itemprice', 'itemsize',
'expir', 'storename', 'storetype');
$data = array_map(function($cRow) uses ($fields) {
return array_combine($fields, $cRow);
}, $rawData);
見下面的URL
試試吧
逐行遍歷csv文件,並插入到數組中:
$array = array();
$handle = @fopen("file.csv", "r");
if ($handle) {
while (($line = fgetcsv($handle, 4096)) !== false) {
$array[$line[0]][$line[1]][$line[2]] = $line[3];
}
if (!feof($handle)) {
echo "Error: unexpected fgets() fail\n";
}
fclose($handle);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.