0

CSVファイルにデータがあります。ファイルを読み取り、データを配列に入れる必要があります。CSVファイルには次のように5つの列があります。

CAPRICCIOSA | Tomato, Cheese, Mushrooms | $8.00 | $12.00 | $15.00

MARGHERITA  | Tomato, Cheese, Oregano   | $7.00 | $11.00 | $13.00
  1. どうすればexplode()配列に入れることができますか?カンマを使用して配列に分解するとCAPRICCIOA - Tomato - Cheese、テキストにすでにカンマが含まれているためになります。

  2. MySQLのように、結果をループできるように、どのように異なる行に分割できますか?

私は以下を試しました:

 $file="dish.csv" ;
 $file=file_get_contents($file);
 $array=explode(",", $file);
4

3 に答える 3

6

PHP関数を使用するのはどうですか:fgetcsv()

http://php.net/manual/en/function.fgetcsv.php

于 2012-12-15T04:32:28.333 に答える
2

あなたはfgetcsvに目を向けるべきです:

<?php
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $num = count($data);
        echo "<p> $num fields in line $row: <br /></p>\n";
        $row++;
    for ($c=0; $c < $num; $c++) {
        echo $data[$c] . "<br />\n";
    }
}
fclose($handle);

?>

http://php.net/manual/en/function.fgetcsv.php

于 2012-12-15T04:33:36.330 に答える
0

これを試して:

$fn='dish.csv';

$file_array = file($fn);
foreach ($file_array as $line_number =>&$line)
{
    //$line=utf8_encode($line);
    $row=explode('|',$line);

    echo 'Dish: '.$row[0].'<br>';
    $ingredients=explode(',',$row[1]);
    echo 'Ingredients:';
    echo '<pre>';
    print_r($ingredients);
    echo '<br><br>';
    echo '</pre>';
}
于 2012-12-15T09:23:47.023 に答える