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 )
可以使用 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