php - 内爆和 explode 关联数组

标签 php csv explode implode

我目前正在开展一个学校项目,无法弄清楚如何正确地内爆和 explode 阵列。我的目标是能够添加新用户、能够删除用户和更新用户。我需要正确获取我的键值对才能实现这一目标。

谢谢

<?php
class index {

    function __construct(){}

我的 CSV 读取结果如下

Array
(
    [Email = [email protected]] => FirstName = fake_firstname
)
    public function display() {

        $filename   = 'testfile.csv';
        $lines      = file($filename);
        $data       = array();

        echo "<tr>
        <th>Email</th>
        <th>First</th>
        <th>Last</th>
        </tr><br>";
        foreach($lines as $info) {
            list($key, $value) = explode(',', $info);
            $result[$key] = $value;

            echo "<pre>";
            print_r($result);
            echo "</pre>";
        }
    }

    public function add($Fname, $Lname, $Email) {
        $this->Fname = $Fname;
        $this->Lname = $Lname;
        $this->Email = $Email;
        $this->person = array('Email'=>$this->Email,'FirstName' =>$this->Fname,
        'LastName' =>$this->Lname);
        $this->save($this->person);

        print_r($this->person);
    }

    public function save($arr) {
        $filename = 'testfile.csv';
        $myfile = fopen($filename, "a+") or die("Unable to open file!");
        foreach($arr as $key => $value){
            $new[] = $key.' = '.$value;
            $final =  implode(",", $new);
        }
        fwrite($myfile, $final."\r\n");

        fclose($myfile);
    }

我的 CSV 保存结果如下 Email = <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="83f7e6f0f7c3eee2eaefade0ecee" rel="noreferrer noopener nofollow">[email protected]</a>,FirstName = fake_firstname,LastName = fake_lastname

    public function form(){
        include('add.html');
    }

} // close off class index

?>

最佳答案

为什么不将 csv 文件的内容作为字符串获取,使用explode两次,一次使用explode(",", $CSVString),然后为每个索引调用另一次explode,使用explode("=", $array [$i]),如果需要在第二次 explode 周围修剪()以消除末尾和开头的空格。请注意,第二次 explode 是使用数组,因此您必须使用

$email = trim(explode("=", $yourArray[0])[1]);
$Fname = trim(explode("=", $yourArray[1])[1]);
$Lname = trim(explode("=", $yourArray[2])[1]);

这段非常紧凑的代码创建了三个数组,每个数组对应一种信息(mail、Fname、Lname),并直接选择必要的字符串,对其进行修剪并将值放入变量中。 如果您需要进一步的帮助或解释,请告诉我。

关于php - 内爆和 explode 关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33584319/

相关文章:

php - csv解析, explode 避免 ""

jquery - Internet Explorer 中 jQuery UI Explode 的奇怪行为

php - ZF2 Doctrine - 使用查询生成器如何指向存储库中的自定义方法

php - 计划在PHP/MySQL中使用模板和替代内容进行搜索

MySQL LOAD DATA INFILE : works, 但不可预测的行终止符

r - 使用 Shiny 的包上传数据、更改数据框和下载结果

php - Laravel 4 动态路由 - 过度杀伤力?

php - PSR-2 - 阵列左括号是否应该在自己的行上

java - 我如何标记读取的文件以避免在java中再次读取它们?

php - 正则表达式 | explode | str_split 匹配标题中的数字