【发布时间】:2016-02-08 15:13:55
【问题描述】:
我目前正在处理一个学校项目,但无法弄清楚如何正确地内爆和分解阵列。我的目标是能够添加新用户、删除用户和更新用户。为了实现这一点,我需要正确获取我的键值对。
谢谢
<?php
class index {
function __construct(){}
我的CSV读取结果如下
大批 ( [电子邮件 = test@mail.com] => 名字 = 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 = test@mail.com,FirstName = fake_firstname,LastName = fake_lastname
public function form(){
include('add.html');
}
} // close off class index
?>
【问题讨论】:
-
为什么不将 csv 文件的内容作为字符串获取,使用两次explode,一次使用explode(",", $CSVString),然后对于每个索引调用另一个explode 使用explode(" =", $array[$i]) 以及是否需要在第二次爆炸时使用 trim() 以消除末尾和开头的空格 - 如果这样做可以解决问题,我会将其作为答案,如果不让我知道:)
-
我做了以下事情,它说第二个爆炸应该是一个字符串。 foreach($lines as $info) { $CSVString = explode(',', $info); $last = explode('=', $CSVString);回声“
”; print_r($last);回声“
”; -
见下面我的回答。希望对你有帮助:)