PHPPHP学习笔记–去除数组中的重复数据

在那总括二种PHP中去除数组中重新数据的法门

1.平素运用array_unique函数

利用array_unique函数可以直接将一个数组中的重复的值去除,只保留重复值中的第一遍出现的值和其相应的键值

现实的验证可以查阅PHP手册

例1:

$input = array("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique($input);
print_r($result);

那时出口:

Array
(
    [a] => green
    [0] => red
    [1] => blue
)

注意:在array_unique函数中,若出现 int(3) 和 string(1) ‘3’
时,函数会将那七个值认成同一个值,也只会保留先出现尤其值

例2:

$input = array(4, "4", "3", 4, 3, "3");
$result = array_unique($input);
var_dump($result);

这时候会输出:

array(2) {
  [0] => int(4)
  [2] => string(1) "3"
}

2.利用array_flip函数和array_keys函数一起效果

在利用array_unique函数是不行的有益,可是有几许,array_unique函数不会转移保留下去的值得原先的键值,那对于在某些景况下对于新数组的操作带来了诸多不便,此时就可以行使array_flip函数和array_keys函数

array_flip函数

将点名数组的值和键值对调,将键名变成了值,而原来数组中的值成了键名,并且只要同一个值出现了累累,则最后一个键名将作为它的值,所有其余的都不翼而飞了。
例如:

$trans = array("a" => 1, "b" => 1, "c" => 2);
$trans = array_flip($trans);
print_r($trans);

此时出口:

Array
(
    [1] => b
    [2] => c
)

array_keys函数

array_keys函数,可以重临数组中有些的或有所的键名,那个相比好了解,若是指定了serch_value则是重返指定查询值的键值
例如:

$array = array(0 => 100, "color" => "red");
print_r(array_keys($array));

$array = array("blue", "red", "green", "blue", "blue");
print_r(array_keys($array, "blue"));

$array = array("color" => array("blue", "red", "green"),
               "size"  => array("small", "medium", "large"));
print_r(array_keys($array));

此刻会输出:

Array
(
    [0] => 0
    [1] => color
)
Array
(
    [0] => 0
    [1] => 3
    [2] => 4
)
Array
(
    [0] => color
    [1] => size
)

介绍完五个函数的应用后,在碰着一个数码重复很多的数组时,想剔除中间再也的数目而又想键值从
‘0’
初叶计数时,可以先对函数使用array_flip函数,然后在对新的数组使用array_keys函数,即可兑现

补偿:在编制介绍array_keys函数的时候猛然想到应该有个函数可以取出所有的数组的value的,查了一下果然有array_value函数,这些函数可以回到一个数组的持有的值并记下进新的数组,那样也足以达成键值从
‘0’
初叶计数,所以想达成本篇文章的目标也得以先采取array_unique函数,接着对其应用array_value函数。

相关文章