PHP删除数组中的重复值

可以使用 array_keys 和 array_flip 删除重复值,这比迭代数组更简单,并且比使用专用的 array_unique 函数更快。

我们可以只对数组进行两次翻转,但这会导致“丢失键”,当其他开发人员可能在我们不知情的情况下迭代数组时,这不太理想。
使用 array_keys 通过重新生成密钥避免了这个问题。

$some_array = array('HTML', 'CSS', 'JavaScript', 'PHP', 'HTML', 'HTML', 'Jquery');
$unique_array = array_keys(array_flip($some_array));
print_r($unique_array);

输出:

Array
(
    [0] => HTML
    [1] => CSS
    [2] => JavaScript
    [3] => PHP
    [4] => Jquery
)
如何从 PHP 数组中删除元素

可以使用 unset() 函数从数组中删除元素。
如果我们不知道要删除的元素的数组键,而我们只知道值,则可以使用函数组合来查找键。

如果你知道关键:

$my_array = array(
  'boss' => 'Jacob',
  'janitor' => 'Kim'
  'worker' => 'Jones'
);
$key = 'janitor';
unset($my_array["$key"]);

请记住,如果键是数字,则不需要引号:

$key = 22; //String or Int

如果我们不知道键,但知道值,则可以使用 array_flip() ,然后通过翻转的值取消设置:

$my_array = array(
  'boss' => 'Jacob',
  'janitor' => 'Kim'
  'worker' => 'Jones'
);
$my_array = array_flip($my_array);
unset($my_array["$key"]);
$my_array = array_flip($my_array); //Reversing the flip
print_r($my_array);

另一种选择是使用 array_search() :

$my_array = array(
  'boss' => 'Jacob',
  'janitor' => 'Kim'
  'worker' => 'Jones'
);
$key = array_search('Jacob', $my_array); //$key = boss
unset($my_array["$key"]);

通常认为在使用键时始终使用引号是一种很好的做法。
如果我们使用的是数组元素,请使用大括号:

$key = 'The Key'; //String or Int
unset($my_array["{$array['MyKey']}"]);
日期:2020-06-02 22:17:03 来源:oir作者:oir