【问题标题】:Removes values of one array from another从另一个数组中删除一个数组的值
【发布时间】:2013-02-19 00:40:39
【问题描述】:

假设我有这两个数组:

$arraryA = array(10587,10590,10598,10592,10602,10604,10607);

$arrayB = array(10590);

我知道的是,

  1. $arrayB 的值总是来自 $arrayA 的元素
  2. $arrayB 可能有一个或多个元素

我需要从 $arrayA 中删除 $arrayB 的值。

意思是,我需要一个新数组:

$arrayC = 数组(10587,10598,10592,10602,10604,10607);

如果$arrayB = array(10590, 10604),$arrayC 将是:

$arrayC = array(10587,10598,10592,10602,10607);

有什么想法吗?

【问题讨论】:

  • 那你还没看array_diff()?
  • 就是这样,马克。我怎样才能接受你的回复?你能发一个新的回复让我接受吗?
  • 问题,我是否需要检查 $arrayB 是否作为带有 array_diff 的数组存在,或者自动检查它?
  • 我不记得传递给 array_diff() 的第二个参数是否必须是一个数组,但怀疑可能是这种情况
  • 对,我查过了。 $arrayB 必须以数组形式存在,否则会引发错误。

标签: php arrays


【解决方案1】:

使用array_diff()

$arrayC= array_diff($arrayA, $arrayB);

示例

$arrayA = array(10587,10590,10598,10592,10602,10604,10607);
$arrayB  = array(10590);
$arrayC  = array_diff($arrayA, $arrayB);

var_dump($arrayC);

// array(6) { [0]=> int(10587) [2]=> int(10598) [3]=> int(10592) [4]=> int(10602) [5]=> int(10604) [6]=> int(10607) }

See it in action

【讨论】:

    猜你喜欢
    • 2021-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多