Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查数组的值是否唯一。如果是,则随机化数组_Php_Arrays_Unique - Fatal编程技术网

Php 检查数组的值是否唯一。如果是,则随机化数组

Php 检查数组的值是否唯一。如果是,则随机化数组,php,arrays,unique,Php,Arrays,Unique,我有一个这样的数组 0 => string '' (length=0) 1 => string 'nameMiddle' (length=10) 2 => string 'dsa' (length=3) 3 => string '' (length=0) 4 => string 'phoneFirst' (length=10) 5 => string 'addressStreet' (length=13) 6 => string 'addressCity

我有一个这样的数组

0 => string '' (length=0)
1 => string 'nameMiddle' (length=10)
2 => string 'dsa' (length=3)
3 => string '' (length=0)
4 => string 'phoneFirst' (length=10)
5 => string 'addressStreet' (length=13)
6 => string 'addressCity' (length=11)
7 => string 'addressState' (length=12)
8 => string 'addressZip' (length=10)
9 => string 'status' (length=6)
10 => string 'gender' (length=6)
11 => string 'dateOfBirth' (length=11)
12 => string 'numberOfDependents' (length=18)
13 => string 'salary' (length=6)
14 => string 'startDate' (length=9)
15 => string 'ltdClass' (length=8)
16 => string 'deductionMedical' (length=16)
17 => string 'deductionDental' (length=15)
18 => string 'deductionVision' (length=15)
19 => string 'suppLyfCost' (length=11)
20 => string 'stdCost' (length=7)
21 => string 'effectiveDate' (length=13)
0 => string '0'
3 => string '3' 
这些值最终将是使用array\u combine的键,但在array\u combine上不能有相同的键。我如何检查数组是否具有相同的值如果是,我如何使该值成为唯一值

0 => string '' (length=0)
1 => string 'nameMiddle' (length=10)
2 => string 'dsa' (length=3)
3 => string '' (length=0)
4 => string 'phoneFirst' (length=10)
5 => string 'addressStreet' (length=13)
6 => string 'addressCity' (length=11)
7 => string 'addressState' (length=12)
8 => string 'addressZip' (length=10)
9 => string 'status' (length=6)
10 => string 'gender' (length=6)
11 => string 'dateOfBirth' (length=11)
12 => string 'numberOfDependents' (length=18)
13 => string 'salary' (length=6)
14 => string 'startDate' (length=9)
15 => string 'ltdClass' (length=8)
16 => string 'deductionMedical' (length=16)
17 => string 'deductionDental' (length=15)
18 => string 'deductionVision' (length=15)
19 => string 'suppLyfCost' (length=11)
20 => string 'stdCost' (length=7)
21 => string 'effectiveDate' (length=13)
0 => string '0'
3 => string '3' 

谢谢

要用键替换空值或非唯一值,请尝试:

foreach($array as $k => &$v) {
    if(empty($v) || count(array_search($v, $array)) > 1) {
        $v = $k;
    }
}

您有1个数组,是否要在其上组合用户数组?你想让一个空字符串成为唯一的键吗?如果另一个元素已经有值“0”会怎样?最终将是键。。。空字符串作为键有什么用?这并不完全是非法的,但考虑到PHP自由的类型转换/转换规则,它不会特别有用。e、 就PHP而言,$x[null]和$x[]都是相同的键。嗨,这实际上是来自CSV文件的头。用户有时可能会忘记标题,或者在类似此列的列中有相同的标题。这是我的代码,当$row=fgetcsv$handle,1000,$delimiter!==FALSE{if!$header{$header=$row;}$data[]=array\u combine$header,$row;}如果是,请将其标记为已回答。