想得到不在阵列A中的新阵列吗?

时间:2010-08-24 12:25:07

标签: php

我有两个数组:

$A = array('a','b','c','d')
$c = array('b','c','e','f')

我想获得一个包含不在数组$A中的项的新数组。所以它会是:

$result = array('e','f');

因为'e''f'不在$A

4 个答案:

答案 0 :(得分:9)

使用array_diff
print_r(array_diff($c, $A));返回

Array
(
    [2] => e
    [3] => f
)

答案 1 :(得分:2)

使用array_diff执行此任务。有点烦人,它不会返回两个数组之间的所有差异。只传递第一个数组中未在任何其他数组中找到的元素作为参数传递。

$array1 = array('a','b','c','d');
$array2 = array('b','c','e','f');
$result = array_diff($array2, $array1);

答案 2 :(得分:1)

答案 3 :(得分:1)

Pseduo一般实施准则

免责声明:不熟悉PHP,其他答案表明有更快捷的方法:)

遍历你的第一个阵列:

// Array of results
array results[];

// Loop through all chars in first array
for i = 0; i < A.size; i++
{
    // Have we found it in second array yet?
    bool matched = false;

    // Loop each character in 2nd array
    for j = 0; j < C.size; j++
    {
        // If they match, exit the loop
        if A[i] == C[J] then
            matched = true;
            exit for;
    }

    // If we have a match add it to results
    if matches == true then results.add(A[i])

}