如何在PHP中将.csv文件解析为多维数组?

浮点数

我是PHP的新手,正尝试制作与.csv文件通信的待办事项列表。到目前为止,我已经设法编写了一个将用户输入内容输入到csv文件中的函数,但是我一直坚持写一个函数来解析(我什至不确定这是否正确)术语的每一行。 .csv文件转换为多维数组,因此我可以在PHTML文件中方便地显示列表的每一行。

这是我到目前为止的内容:

`<?php
//
// ─── DATA ────────────────────────────────────────────────────────────────────
//

$user_entry = array(
    'title' => '',
    'description' => '',
    'date' => '',
    'priority' => ''
);

// puts the data the users entered into an array
$user_entry['title'] = $_POST['title'];
$user_entry['description'] = $_POST['description'];
$user_entry['date'] = $_POST['date'];
$user_entry['priority'] = $_POST['priority'];

//
// ─── FUNCTIONS ──────────────────────────────────────────────────────────────────
//

function writeInList() {
    //parses the $user_entry array into the .csv file
    global $user_entry;
    $file = fopen("todo.csv","a");
    fputcsv($file, $user_entry, ",");
    fclose($file);
}

function displayList() {
    //That's where I'm stuck.
    $file = fopen("todo.csv","r");
    $fileCountable = file("todo.csv");
    for ($i = 0; $i < count($fileCountable); $i++) {
        $csvContent = fgetcsv($file, 1000, ",");
        foreach ($csvContent as $value){
            $var[$i] = $value;
        }
        echo '<br>';
    }
    fclose($file);
}

//
// ─── MAIN CODE ─────────────────────────────────────────────────────────────
//

writeInList();

include 'todolist.phtml';`

对不起,如果之前已经讨论过。我进行了很多搜索,发现了类似的问题,但是无法使其在我自己的代码中起作用。如果有人花时间查看我的代码,请多谢!

这也是我第一次在这里发布,所以我希望我做得对。

dWinder

你做的很好 您可以查看fgetcsv文档以获取更多信息。我将更改您的功能,以便它将参数作为输入(请尝试避免使用global

// insert data
function writeInList($user_entry, $path ) {
    $file = fopen($path ,"a");
    fputcsv($file, $user_entry, ",");
    fclose($file);
}

//extract data
function getList($path, $limit = 100000) {
    $file = fopen($path, "r");
    if (!$file) return null; // or throw error or print to log
    $allRows = []; //
    while (($data = fgetcsv($file, $limit, ",")) !== FALSE) {
        $allRows[] = $data; // as fgetcsv return array already exlode by "," 
    }
    fclose($file);
    return $allRows; 
}

现在,您从返回了2维数组getList使用方法为,getList("todo.csv")并根据需要显示。

希望有帮助!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章