【问题标题】:How to filter array and create new array [closed]如何过滤数组并创建新数组[关闭]
【发布时间】:2015-03-29 22:29:31
【问题描述】:

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

我需要创建array3,它只包含那些位于array2 而不是array1 的值。所以我的array3 将是array3(5,6)

【问题讨论】:

  • 那么,您有任何代码尝试这样做吗?否则,很难帮到你。
  • 你看过array_diff()吗? PHP 手册的存在是有原因的……告诉我们可以用 PHP 做什么,以及如何做!
  • 不知道现在人们的工作如此。对咆哮感到抱歉,但有时,人们走得太远而无法获得一些代表。

标签: php arrays


【解决方案1】:

尝试像这样使用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().
?>

【讨论】:

    【解决方案2】:

    你需要函数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
    //)
    

    【讨论】:

      【解决方案3】:

      您可以通过以下方式进行操作

      $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
          )
      

      【讨论】:

        【解决方案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
        

        【讨论】:

          猜你喜欢
          • 2022-01-04
          • 1970-01-01
          • 2021-02-19
          • 1970-01-01
          • 2019-12-22
          • 2020-09-29
          • 2012-10-08
          • 1970-01-01
          • 2022-11-22
          相关资源
          最近更新 更多