php - 从两个数组中只删除一个匹配元素

标签 php

$array1 = array(1.99);
$array2 = array(1.99, 1.99, 2.99);

我只想从 $array2 中删除 $array1 的一个匹配元素。

所以,我想要的是:

1.99
2.99

我试过 array_diff(),它将去掉两个 1.99,只剩下 2.99

最佳答案

你可以利用这个事实 array_search只会从目标数组中返回一个匹配元素,并使用它从 $array2 中删除它:

$array1 = array(1.99);
$array2 = array(1.99, 1.99, 2.99);

foreach ($array1 as $remove) {
  unset($array2[array_search($remove, $array2)]);
}

如果$array1可以包含 $array2 中不存在的元素那么您需要添加一个检查 array_search 的结果不是假的。

关于php - 从两个数组中只删除一个匹配元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47101251/

相关文章:

php - 在 yii 的 mysql 中获取带有 maxid 和 condition 的记录,但有时它会获得第二条记录?

php - 通过恢复 PHP 代码创建 JSON 字符串

php - 如何在 php 中构建 preg_match 的正则表达式

php - 尝试将数字和字母插入表中时出现数据库错误,但只有数字有效

php - mysql查询where条件

php - 使用正则表达式验证 ISBN 编号

javascript - 我正在尝试使用 javascript 更改 div 的值

php - 将表添加到现有查询

php - 警告:mysql_num_rows():提供的参数不是有效的MySQL结果资源

php - 在 PHP 中重命名 MySQL 表并设置前缀