发布网友 发布时间:2022-04-06 03:45
共2个回答
热心网友 时间:2022-04-06 05:14
一、这个没有被合并,只是取的后面这个键名的值,
二、$input=array("11"=>"aaaa","22"=>"bbbb","33"=>"cccc","11"=>"aaada","44"=>"cccc1","55"=>"cccc");
$result
=
array_unique
($input);
print_r($result);
输出的结果:Array
(
[11]
=>
aaada
[22]
=>
bbbb
[33]
=>
cccc
[44]
=>
cccc1
)
键名33
和
55
的值完全一样的时候,后者会被干掉
如果你要的是键名和值完全一致的时候才删除一个的话,似乎不能,因为键名是不允许重复的
听你的情况似乎数据量很大,建议你使用
array_flip()函数
【php中,删除数组中重复元素有一个可用的函数,那就是array_unique(),
但是它并不是一个最高效的方法,使用array_flip()函数将比array_uniqure()在速度上高出五倍左右。】
例子:$input=array("11"=>"aaaa","22"=>"bbbb","33"=>"cccc","11"=>"aaada","44"=>"cccc1","55"=>"cccc");
$arr1
=
array_flip(array_flip($input));
print_r($arr1);
输出的结果:Array
(
[11]
=>
aaada
[22]
=>
bbbb
[55]
=>
cccc
[44]
=>
cccc1
)
热心网友 时间:2022-04-06 06:32
你所用的那个array_unique
是可以实现你想要的结果的
$input=array("11"=>"aaaa","22"=>"bbbb","33"=>"cccc","11"=>"aaada");
这个数组前的键11的值会直接给后的键11的值代替,也就是重新赋值
$input=array("11"=>"aaaa","22"=>"bbbb","33"=>"cccc","55"=>"aaaa");
你把数组定义成这样
就会有你想要的结果
$result
=
array_unique
($input);
print_r($result);