如何过滤数组并创建新数组


How to filter array and create new array

我有两个数组:array1=(1,2,3,4)array2=(1,2,5,6)

我需要创建仅包含那些位于array2而不是array1中的值的array3。所以我的数组 3 将array3(5,6) .

尝试使用这样的array_diff()

<?php
$array1=array(1,2,3,4);
$array2=array(1,2,5,6);
print_r(array_diff($array2,$array1));// to reinitialize key use array_values().
?>

你需要函数array_diff()http://php.net/array_diff

$a1 = array(0 => "a", 1 => "b", 2 => "c");
$a2 = array(3 => "c", 4 => "b", 5 => "d");
print_r(array_diff($a1,$a2));
//Array (
//  [0] => a
//)
你可以

按以下方式做到这一点

$array1=array (1,2,3,4);
$array2=array (1,2,5,6);
$result = array_diff ( $array1 , $array2);
echo "<pre>";print_r($result);exit;

这将输出

Array
(
    [2] => 3
    [3] => 4
)

如果要重新索引数组,可以使用以下代码

array_values($result);

输出:

Array
    (
        [0] => 3
        [1] => 4
    )

这是解决方案:

<?php
$a = array(0=> 1, 1 => 23, 2 => 3);
$b = array(0=> 1, 1 => 23, 2 => 3, 3=> 5, 4=> 10);
$c = array_diff($b, $a);
var_dump($c);
?>

输出:

array (size=2)
  3 => int 5
  4 => int 10