如果参数数量不相同,array_combine无法正常工作

时间:2019-02-22 06:26:25

标签: php

我正在从csv文件读取数据并合并array.i在csv中具有以下标题

名字,姓氏,电子邮件,联系电话

我在CSV中提供有关列

的以下数据

Usertest,名称,test @ test.com,645383638

然后使用array_combine()合并数据。在这种情况下,它可以正常工作,并且给出下面的结果

Array
(
    [First Name] => test
    [Last Name] => name
    [Email] => test@tedtmsil.com
    [Contact No] => 74647454
)

但是,如果我在csv中将联系电话留空,则array_combine()无法工作,给我空的array()

Array
(
 
)

$dataKeys   =   First Name,Last Name,Email,Contact No;
$dataValues = 	Usertest,name,test@test.com
$dataArr = array_combine(str_getcsv($dataKeys), str_getcsv($dataValues));

由于csv标头中的参数数量与row中的data字段中的参数数量不同,因此无法解决该问题。

1 个答案:

答案 0 :(得分:1)

每当使用array_combine将数据放入csv时,都可以通过以下代码确保两个数组的长度必须相同。

您可以这样做,

$arr1 = array("First Name", "Last Name", "Email","Contact No");
$arr2 = ["Usertest","name","test@test.com"];
$temp = array_pad($arr2, count($arr1),'');
$res = array_combine($arr1,$temp);
print_r($res);

输出

Array
(
    [First Name] => Usertest
    [Last Name] => name
    [Email] => test@test.com
    [Contact No] => 
)

Demo