如果参数数量不同,则 array_combine 不起作用

spb*_*spb 0 php

我正在从 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 标题中的参数数量和行中的数据字段中的参数数量不同,所以我不知道如何解决此问题。

Rah*_*hul 6

每当您使用 将数据放入 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)

演示