Php CSV以输出包含JSON数据的字段的数组
使用Laravel5.2,我想导入一个CSV并将记录存储在数据库中。姓名、姓氏和联系电话将是核心字段,其他任何内容都将是我希望作为JSON存储在附加信息字段中的附加数据 范例Php CSV以输出包含JSON数据的字段的数组,php,arrays,json,csv,laravel-5.2,Php,Arrays,Json,Csv,Laravel 5.2,使用Laravel5.2,我想导入一个CSV并将记录存储在数据库中。姓名、姓氏和联系电话将是核心字段,其他任何内容都将是我希望作为JSON存储在附加信息字段中的附加数据 范例 * | name | surname | contact_number | gender | race |" * | piet | pokol | 0111111111 | male | race |" 将按如下方式存储: * ['name'=>'piet','surname'=>'pokol
* | name | surname | contact_number | gender | race |"
* | piet | pokol | 0111111111 | male | race |"
将按如下方式存储:
* ['name'=>'piet','surname'=>'pokol', 'contact_number'=>'0111111111', 'additional_data'=>'{gender:"male", race:"green"}']
我的问题是,是否可以像这样将数组与JSON数组结合起来
到目前为止,我已经用这段代码制作了一个传统的数组
foreach ($reader as $index => $row) {
if ($index === 0) {
$headers = $row;
} else {
$data = array_combine($headers, $row);
$array = array_merge($data, ['client_id' => $client_id, 'list_id' => $list_id]);
Customer::create($array);
}
}
但我需要对所有非核心字段进行JSON编码,然后将它们添加到数组中
任何人对此有什么建议吗?检查下面的代码,它可能会对您有所帮助。您可以使用结果数组存储在数据库中
<?php
$data = array(
'name'=> "My Name",
'surname'=> 'My Surname',
'contact_number'=> '0987456321',
'age'=> '38',
'gender'=> 'female',
'address'=> 'NewYork, USA',
);
$core = array('name','surname','contact_number');
$result = array();
$additional = array();
foreach($data as $key => $val) {
if(in_array($key, $core)) {
$result[$key] = $val;
} else {
$additional[$key]= $val;
}
}
if(count($additional)) {
$result['additional'] = json_encode($additional);
}
echo "<pre>";
print_r($result);
?>
是的,您可以这样做。您可以将json编码的数组作为值存储在其他数组中。