php array_push() -> 如果数组已经包含值,如何不推送

2022-08-30 10:08:15

我正在使用以下循环将项目添加到名为$liste的数组中。我想知道如果值已经在数组中,是否有可能以某种方式不将$value添加到$liste数组中?希望我很清楚。提前感谢您。

$liste = array();
foreach($something as $value){
     array_push($liste, $value);
}

答案 1

在推送之前,您可以使用in_array检查它是否存在。

foreach($something as $value){
    if(!in_array($value, $liste, true)){
        array_push($liste, $value);
    }
}

启用“严格检查”。这将使用 而不是 来比较元素。,true=====


答案 2

真的有两个选择。

选项 1:检查每个项目,如果项目在那里,则不要推送。基本上你所要求的:

foreach($something as $value) {
    if( !in_array($value,$liste)) array_push($liste,$value);
}

选项 2:无论如何都要添加它们,并在以下位置删除重复项:

foreach($something as $value) {
    array_push($liste,$value);
}
$liste = array_unique($liste);

不过,从外观上看,您可能只是在寻找 .$liste = array_unique($something);