消息:preg_match() 期望参数 2 是一个字符串,在 CodeIgniter 中导出数据时给出的数组
Message: preg_match() expects parameter 2 to be a string, array given while exporting the data in CodeIgniter
我正在使用 CodeIgniter。我正在 excel sheet.
中导出数据
现在我正在做的是,我有 Payment option
和 Payment Details
列。
我必须在
这样的列中显示输出
if(Payment option == 'a'){
//display array in the column
}
else if(Payment option == 'b')
{
//display array in the column
}
else{
//
}
预期输出
我遇到错误
1)
A PHP Error was encountered
Severity: Notice
Message: Undefined offset: 0
Filename: Cell/DefaultValueBinder.php
2)
A PHP Error was encountered
Severity: Warning
Message: preg_match() expects parameter 2 to be string, array given
Filename: Cell/DefaultValueBinder.php
导出码
public function export_order_list(){
$object = new PHPExcel();
$object->setActiveSheetIndex(0);
$table_columns = array("Customer Name","Email","Mobile no","Alternet no","Payment option","Payment Details","Date of created");
$column = 0;
$object->getActiveSheet()->getStyle('1:1')->getFont()->setBold(true);
foreach($table_columns as $field)
{
$object->getActiveSheet()->setCellValueByColumnAndRow($column, 1, $field);
$column++;
}
$export_list = $this->Customer_model->export_order_list_model();//getting all data
$excel_row = 2;
foreach($export_list as $row)
{
$cust_name=$row->c_firstname." " .$row->c_middlename."".$row->c_lastname;
if ($row->payment_option=='A') {
$payment_details=array(
'Account holder name:' => $row->account_holder_name,
'Account no:'=>$row->e_account_no,
'Cheque no:'=>$row->cheque_no
);
}
if ($row->payment_option=='b') {
$payment_details=array(
'Name On Card:' => $row->c_name_on_card,
'Card Number:'=>$row->c_card_number,
'Exp month'=>$row->c_exp_month,
);
}
else{
$payment_details="";
}
$object->getActiveSheet()->setCellValueByColumnAndRow(0, $excel_row, $cust_name);
$object->getActiveSheet()->setCellValueByColumnAndRow(1, $excel_row, $row->c_email_id);
$object->getActiveSheet()->setCellValueByColumnAndRow(2, $excel_row, $row->c_mobileno);
$object->getActiveSheet()->setCellValueByColumnAndRow(3, $excel_row, $row->c_alternetno);
$object->getActiveSheet()->setCellValueByColumnAndRow(4, $excel_row, $row->payment_option);
$object->getActiveSheet()->setCellValueByColumnAndRow(5, $excel_row, $payment_details);
$object->getActiveSheet()->setCellValueByColumnAndRow(6, $excel_row, $row->c_date_of_added);
$excel_row++;
}
$object_writer = PHPExcel_IOFactory::createWriter($object, 'Excel5');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="Order list.xls"');
$object_writer->save('php://output');
}
将此代码块数组更改为字符串
if ($row->payment_option=='A') {
$payment_details='Account holder name:'.$row->account_holder_name.' Account no:'.$row->e_account_no.' Cheque no:'.$row->cheque_no;
}else if ($row->payment_option=='b') {
$payment_details='Name On Card:'.$row->c_name_on_card.' Card Number:'.$row->c_card_number.' Exp month'.$row->c_exp_month;
}else{
$payment_details="";
}
添加
if(is_array($payment_details)){
$result = array_map(function($k, $v){
return "$k=$v";
}, array_keys($payment_details), array_values($payment_details));
$payment_details = implode(' ', $result);
}
之前
$object->getActiveSheet()->setCellValueByColumnAndRow(0, $excel_row, $cust_name);
我正在使用 CodeIgniter。我正在 excel sheet.
中导出数据现在我正在做的是,我有 Payment option
和 Payment Details
列。
我必须在
这样的列中显示输出if(Payment option == 'a'){
//display array in the column
}
else if(Payment option == 'b')
{
//display array in the column
}
else{
//
}
预期输出
我遇到错误
1)
A PHP Error was encountered
Severity: Notice
Message: Undefined offset: 0
Filename: Cell/DefaultValueBinder.php
2)
A PHP Error was encountered
Severity: Warning
Message: preg_match() expects parameter 2 to be string, array given
Filename: Cell/DefaultValueBinder.php
导出码
public function export_order_list(){
$object = new PHPExcel();
$object->setActiveSheetIndex(0);
$table_columns = array("Customer Name","Email","Mobile no","Alternet no","Payment option","Payment Details","Date of created");
$column = 0;
$object->getActiveSheet()->getStyle('1:1')->getFont()->setBold(true);
foreach($table_columns as $field)
{
$object->getActiveSheet()->setCellValueByColumnAndRow($column, 1, $field);
$column++;
}
$export_list = $this->Customer_model->export_order_list_model();//getting all data
$excel_row = 2;
foreach($export_list as $row)
{
$cust_name=$row->c_firstname." " .$row->c_middlename."".$row->c_lastname;
if ($row->payment_option=='A') {
$payment_details=array(
'Account holder name:' => $row->account_holder_name,
'Account no:'=>$row->e_account_no,
'Cheque no:'=>$row->cheque_no
);
}
if ($row->payment_option=='b') {
$payment_details=array(
'Name On Card:' => $row->c_name_on_card,
'Card Number:'=>$row->c_card_number,
'Exp month'=>$row->c_exp_month,
);
}
else{
$payment_details="";
}
$object->getActiveSheet()->setCellValueByColumnAndRow(0, $excel_row, $cust_name);
$object->getActiveSheet()->setCellValueByColumnAndRow(1, $excel_row, $row->c_email_id);
$object->getActiveSheet()->setCellValueByColumnAndRow(2, $excel_row, $row->c_mobileno);
$object->getActiveSheet()->setCellValueByColumnAndRow(3, $excel_row, $row->c_alternetno);
$object->getActiveSheet()->setCellValueByColumnAndRow(4, $excel_row, $row->payment_option);
$object->getActiveSheet()->setCellValueByColumnAndRow(5, $excel_row, $payment_details);
$object->getActiveSheet()->setCellValueByColumnAndRow(6, $excel_row, $row->c_date_of_added);
$excel_row++;
}
$object_writer = PHPExcel_IOFactory::createWriter($object, 'Excel5');
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="Order list.xls"');
$object_writer->save('php://output');
}
将此代码块数组更改为字符串
if ($row->payment_option=='A') {
$payment_details='Account holder name:'.$row->account_holder_name.' Account no:'.$row->e_account_no.' Cheque no:'.$row->cheque_no;
}else if ($row->payment_option=='b') {
$payment_details='Name On Card:'.$row->c_name_on_card.' Card Number:'.$row->c_card_number.' Exp month'.$row->c_exp_month;
}else{
$payment_details="";
}
添加
if(is_array($payment_details)){
$result = array_map(function($k, $v){
return "$k=$v";
}, array_keys($payment_details), array_values($payment_details));
$payment_details = implode(' ', $result);
}
之前
$object->getActiveSheet()->setCellValueByColumnAndRow(0, $excel_row, $cust_name);