我正在从 csv 文件读取数据并组合数组。我在 csv 中有以下标题
名字、姓氏、电子邮件、联系号码
我给出了以下关于列的 csv 数据
用户test,姓名,test@test.com,645383638
然后使用 array_combine() 组合数据。在这种情况下它工作正常并给出以下结果
Array
(
[First Name] => test
[Last Name] => name
[Email] => test@tedtmsil.com
[Contact No] => 74647454
)Run Code Online (Sandbox Code Playgroud)
但如果我将 csv 中的联系号码留空,则 array_combine() 无法正常工作,给我空 array()
$dataKeys = First Name,Last Name,Email,Contact No;
$dataValues = Usertest,name,test@test.com
$dataArr = array_combine(str_getcsv($dataKeys), str_getcsv($dataValues));Run Code Online (Sandbox Code Playgroud)
因为 csv 标题中的参数数量和行中的数据字段中的参数数量不同,所以我不知道如何解决此问题。
每当您使用 将数据放入 csv 时array_combine,您可以通过以下代码确保两个数组的长度必须相同。
你可以做这样的事情,
$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);
Run Code Online (Sandbox Code Playgroud)
输出
Array
(
[First Name] => Usertest
[Last Name] => name
[Email] => test@test.com
[Contact No] =>
)
Run Code Online (Sandbox Code Playgroud)
演示。