如何在codeigniter中分解数据库值

neskvpey  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(288)
set_time_limit(0);
$config['upload_path'] =  'datauploads/';
$config['allowed_types'] = '*'; // CSV|csv|xlsx|xls
$config['max_size']	= '0';
$config['max_width']  = '0';
$config['max_height']  = '0';
$config['overwrite']  = TRUE;

$this->load->library('upload', $config);
if(!$this->upload->do_upload('file_upload'))
{
	$error = array('error' => $this->upload->display_errors());
	print_r($error);
}
else
{
	$file_name = $this->upload->file_name;
	$datas = array('upload_data' => $this->upload->data());
	$handle = fopen(base_url()."datauploads/$file_name", "r"); 			
	$fp = $handle;
	$BufferString= @fgets($fp ,4096);
	$BufferString   = explode("\n",$BufferString);
	$childDropdown = array();
	$childDropdownArr = $this->dform_model->edit_field($modId,$recId);
	$childDropdown = explode("|",$childDropdownArr['def_value']);

	while (($datas = fgetcsv($handle,1024*30, ",")) !== FALSE) 
	{		
		$displayName = $datas[0];
		$databaseValue = $datas[1]; 

		if(!in_array($databaseValue,$childDropdown[$displayName]))
		$childDropdown[$displayName][] = $databaseValue;					
	}
}

在这里,我编写了一些代码,用表的def|value列中的现有值更新新的excel值,我有这样的def|value值(0,us,us,| 0,monali,monali,|),在这里,我需要从文本中分解0和|。我将值分解为$childdropdown=explode(“|”,$childdropdownarr['def_value']);但它不适用于爆炸两个值。如何做到这一点使用codeigniter可以任何一个请帮助我。。

xn1cxnb4

xn1cxnb41#

function multiexplode ($delimiters,$string) {

    $ready = str_replace($delimiters, $delimiters[0], $string);
    $launch = explode($delimiters[0], $ready);
    return  $launch;
}

$text = "(0,US,US,|0,Monali,Monali,|)";

$exploded = multiexplode(array("0","|","|0"),$text);

print_r($exploded);

资料来源:https://www.php.net/manual/en/function.explode.php#111307

相关问题