仅当没有具有相同值的键时才添加到数组?

时间:2011-12-20 03:02:17

标签: php arrays

我想仅在数组$variable中没有具有相同值的键时才添加$insertar["Atributos"]

$insertar["Atributos"][] = $variable;

我可以使用foreach预先检查$variable是否存储,只有在存储时才插入,但我想知道是否有更简单的方法。

4 个答案:

答案 0 :(得分:1)

抱歉,我读错了这个问题。尝试if(!in_array($ value,$ array)){...}

起初我认为你的意思是价值是关键。如果要检查某个键是否在数组中,请使用isset($array[$key])而不是array_key_exists,因为isset在长数组上的执行速度会快得多。

答案 1 :(得分:1)

要明确:

我想仅在数组$variable中没有具有相同值的键时才添加$insertar["Atributos"]

# check if $variable exists as a value in $insertar["Atributos"], and not a key
if (in_array($variable, $insertar["Atributos"])) {
    # add $variable as a VALUE to the array
    $insertar["Atributos"][] = $variable;
}

答案 2 :(得分:0)

替代清理和后处理方法:

$insertar = array_map("array_unique", $insertar);

array_unique()。然而,隐式地对值条目进行排序。

答案 3 :(得分:0)

使用这样的简单构造:

if(! in_array($variable, $insertar["Atributos"])){
    array_push($variable,$insertar["Atributos"]);
}