我是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