0
我正在使用codigniter作爲項目並需要添加導入功能。我試圖將解析的csv文件作爲數組傳遞給視圖,但是當我通過它時,數組似乎是空的。Codeigniter不傳遞數組查看
這裏是解析CSV和加載視圖
public function confirm($targetFile){
$data = array(
'import_url' => site_url(array('import', 'confirm'))
);
$data = array();
$config = new LexerConfig();
$lexer = new Lexer($config);
$interpreter = new Interpreter();
$i=0;
$data_array =array();
$interpreter->addObserver(function(array $columns) use (&$i, &$data_array){
if($i == 0){
$i = $i + 1;
}else{
array_push($data_array,$columns);
}
return $data_array;
}
);
$lexer->parse($targetFile, $interpreter);
print_r($data_array);
// $j=0;
// while($j < sizeof($data_array)){
// $valid = $this->validateRow($data_array[$j],$j);
// if($j == 0){
// //print_r($data_array[$j]);
// }
// if($valid){
// //echo 'true';
// }else{
// //echo 'false';
// }
// $j++;
// }
return $this->load->view('import/view',$data_array); ;
}
這裏是視圖的方法
<?php $this->load->view('include/site_header'); ?>
<?php
if(!empty($data_array)){
foreach((array)$data_array as $data){
print_r($data[0]);
}
}
?>
<div id="content" class="gradient gray">
<h1 class="header">
Import Contacts</h3>
<form id="import_form" action="" method="post" target="_blank">
<h2 class="header">
Confirm import</h3>
<fieldset id="fields">
<div class="clearfix">
<table style="width:100%;">
<tr>
<td>fname</td>
<td>lname</td>
<td>company</td>
</tr>
</table>
</div>
</fieldset>
</form>
</div>
<?php $this->load->view('include/site_footer'); ?>
它的有趣,因爲在法陣後不爲空它被解析。
Array (
[0] => Array ([0] => 1 [1] => Kathleen [2] => L[3] => [email protected] [4] => Female [5] => 111.111.44.111)
[1] => Array ([0] => 2 [1] => Craig [2] => >G[3] => [email protected] [4] => Male [5] => 111.111.77.111)
[2] => Array ([0] => 3 [1] => Kathy [2] => R[3] => [email protected] [4] => Female [5] => 111.111.88.111)
[3] => Array ([0] => 4 [1] => Annie [2] => R[3] => [email protected] [4] => Female [5] => 111.111.99.111)
[4] => Array ([0] => 5 [1] => Chris [2] => D[3] => [email protected] [4] => Male [5] => 111.111.66.111)
)
什麼是在'的print_r($ data_array中)輸出;'?你可以發佈輸出嗎? –
我剛加了 –
試試下面的答案。 –