3

私のCSVには次のようなテーブルがあります

今、私がやりたいことは、レコードごとに、それぞれのセル データを取得し、それらを変数に取りたいということです。(その後、変数を使用していくつかのタスクを実行する必要があります)。

例(各行について、変数の値)

$id = 1;
$name = 'Test';

等々

配列を使用してこれを行うことができます。

例: $row_1 = ('1', 'Test', 'chicago', 'testuser', '21', '123456789')

Google で検索してみましたが、結果はクエリに関連していませんでした。

4

5 に答える 5

2

したがって、各行に対して for ループを実行し、各行とセルからデータを返すことができます。

<?php
    $row = 1;
    if (($handle = fopen("data.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";
               // echo $data[1];
            }
        }
        fclose($handle);
    }
    ?>

csvファイルの場所をコードに入れることを忘れないでください

それが役立つことを願っています

于 2015-03-30T14:27:16.597 に答える
0

各行をコンマで区切って書くという独自のテクニックを採用しました。

于 2012-05-27T02:44:05.423 に答える
0

ああ... JavaScriptだと思った..

しかし、私はPHPで試すことができると思います: http://codepad.org/8SBgTCYy

$labels = explode(",", "id,name,city,username,contact_id,phone");
$values = explode(",", "1,Test,chicage,testuser,21,123456789");

$i = 0;
$count = count($labels);
$object = array();
for ( ; $i < $count; $i++ ) {
    $object[$labels[$i]] = $values[$i];
}

var_dump($object);

もう 1 つ: http://codepad.org/AmVp08QR

$values = explode(",", "id,1,name,Test,city,chicago,username,testuser,contact_id,21,phone,123456789");

$i = 0;
$count = count($values);
$object = array();

for( ; $i < $count; $i++ ) {
    $object[$values[$i]] = $values[$i+1];
}

var_dump($object);

そのようです:

id,name,city,username,contact_id,phone

1,Test,chicage,testuser,21,123456789

var labels = "id,name,city,username,contact_id,phone".split(","),
    values = "1,Test,chicage,testuser,21,123456789".split(","),

    object = {},
    i = 0,
    len = labels.length;

for( ; i < len; i++) object[labels[i]] = values[i];

これで、次のように名前が付けられたオブジェクトがありますobject

{
    id: "1",
    name: "Test",
    city: "chicago",
    username: "testuser",
    contact_id: "21",
    phone: "123456789"
} 

またはこのように:

id,1,name,Test,city,chicago,username,testuser,contact_id,21,phone,123456789

var values = "id,1,name,Test,city,chicago,username,testuser,contact_id,21,phone,123456789".split(","),

    object = {},
    i = 0,
    len = values.length;

for ( ; i < len; i+=2 ) {
    object[values[i]] = values[i+1];
}

その後、最終的に同じオブジェクトになります。

于 2012-05-22T13:17:14.387 に答える
0

fgetcsv() とファミリーを見てみましょう...

また、CSV ファイルは CSV 標準に準拠している必要があります。多くの CSV ファイルが非標準の規則を使用して生成されていることがわかりました...相互運用が非常に苦痛になります。

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

http://www.php.net/manual/en/function.fputcsv.php

http://www.php.net/manual/en/function.str-getcsv.php

于 2012-05-22T13:26:27.893 に答える
0

array_combine()はここで役立つかもしれません:

$labels = explode(",", "id,name,city,username,contact_id,phone"); 
$values = explode(",", "1,Test,chicage,testuser,21,123456789"); 
//  Use fgetcsv() to read these from your file

$data = array_combine($labels,$values);

var_dump($data);
于 2012-05-22T13:27:33.743 に答える