我的输出是:
[price_hidden_label] => 1
[categories] => Array
(
[0] => 26
)
我目前尝试更新的代码是:
updateProduct($product->id, array('categories[108]'));
当我运行此函数时,它会覆盖现有数组,为我提供如下输出:
[price_hidden_label] => 1
[categories] => Array
(
[0] => 108
)
我想要实现的目标如下:
[price_hidden_label] => 1
[categories] => Array
(
[0] => 26
[1] => 108
)
但....如果108已经存在,我希望它会忽略它。我不想要:
[price_hidden_label] => 1
[categories] => Array
(
[0] => 26
[1] => 108
[2] => 108
)
知道我是怎么做到的吗?
答案 0 :(得分:4)
您可以使用
将元素推送到数组$arr[] = $new_var;
并检查
是否已存在某个值if(in_array($new_var, $arr))
在示例中(尝试按照输入输出):
$categories = array();
$categories[] = 26;
$input_value = 108;
if(!in_array($input_value, $categories)) {
$categories[] = $input_value;
}
修改。在函数中(我的PHP有点生疏,所以可能需要进行小的调整但是你得到了基本的想法)
function updateProduct($arr, $input) {
if(!in_array($input, $arr)) {
$arr[] = $input;
}
}
然后将其称为
updateProduct($categories, $input_value);
答案 1 :(得分:0)
您可以使用array_push
向项目中添加项目,并可以使用in_array
检查项目是否已存在,或者您可以在完成后使用array_unique
删除重复项目你的其余部分也是如此。