我是Codeigniter中的新手,并创建了一个表单来从用户输入网站列表,其中用户可以在按行分隔的textarea中插入网址或上载csv文件包含名为网站的标题。我使用笨库CSVReader来读取CSV数据并创建一个这样的数组:使用爆炸创建PHP关联数组Codeigniter
Array ([0] => Array ([websites] => www.google.com) [1] => Array ([websites] => www.bing.com))
而如果我尝试转换从PHP数组爆炸功能(如果通过textarea的用户输入网址)阵列看起来是这样的:
我CSVReader的Array(www.google.com,www.bing.com)
代码如下:
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class CSVReader {
var $fields; /** columns names retrieved after parsing */
var $separator = ';'; /** separator used to explode each line */
var $enclosure = '"'; /** enclosure used to decorate each field */
var $max_row_size = 4096; /** maximum row size to be used for decoding */
/**
* Parse a file containing CSV formatted data.
*
* @access public
* @param string
* @param boolean
* @return array
*/
function parse_file($p_Filepath, $p_NamedFields = true) {
$content = false;
$file = fopen($p_Filepath, 'r');
if($p_NamedFields) {
$this->fields = fgetcsv($file, $this->max_row_size, $this->separator, $this->enclosure);
}
while(($row = fgetcsv($file, $this->max_row_size, $this->separator, $this->enclosure)) != false) {
if($row[0] != null) { // skip empty lines
if(!$content) {
$content = array();
}
if($p_NamedFields) {
$items = array();
// I prefer to fill the array with values of defined fields
foreach($this->fields as $id => $field) {
if(isset($row[$id])) {
$items[$field] = $row[$id];
}
}
$content[] = $items;
} else {
$content[] = $row;
}
}
}
fclose($file);
return $content;
}
}
可能有人请帮助我建立在相同的样式排列?
你是什么意思“相同样式的数组”?你能给出一个期望的输出数组的例子吗?不确定这是否在你的问题中提到。 – Dan
有2个输入选项,用户可以选择任何CSV文件上传或Textarea,我的问题是,我想从两个输入创建一个数组,并且数组结构应该是相同的。例如Array('website1','website2'); – user3172975