【问题标题】:Check difference between two array without any function检查没有任何功能的两个数组之间的差异
【发布时间】:2019-08-12 00:02:12
【问题描述】:
$array1=[1,2,3,4,5,6];
$array2=[1,2,3,5,6,7,8,9,10];

我想要这两个数组之间的区别,而不使用任何函数,如 array_diff 或等

【问题讨论】:

  • 不要使用函数。您可以编写自己的自定义代码。
  • 你能告诉我吗?
  • 你需要什么输出?你想看到什么不同?
  • 你能实现自己的array_diff或非函数使用吗? (这没有意义......)
  • 我想显示 [7,8,9,10] 因为它不存在于 $array1;

标签: php arrays php-7


【解决方案1】:
   $diffArray=array();

   foreach($array1 as $value){ 
      if(!in_array($value,$array2)
         $diffArray[$value] = $value;
    }

   foreach($array2 as $value){ 
      if(!in_array($value,$array1)
         $diffArray[$value] = $value;
    }

分别对数组逐一迭代,将差值也放在数组KEY中,避免重复。在第一个循环中,它将选择在 array1 中但不在 array2 中的元素,在第二个循环中,反之亦然。

【讨论】:

  • 你正在使用in_array这是不允许的...(根据OP要求)
  • 我猜他的意思是array_diff,他也可以编写in_array的自定义实现\
【解决方案2】:

显然,我不会用代码转储来回答这个家庭作业/面试任务,而是用一般(且乏味)的方法:

  • foreach 覆盖两个列表 ($array1 as $x1 / $array2 as $x2)。

  • 保留状态标志$found = false;

  • 如果内部foreach找到$x1 == $x2,则设置$found

  • 在内部循环之后,将$x1 收集到差异列表(if (!$found))中。

【讨论】:

    猜你喜欢
    • 2020-01-19
    • 1970-01-01
    • 2014-06-12
    • 2020-01-11
    • 1970-01-01
    • 2018-01-07
    • 2019-05-02
    • 1970-01-01
    • 2019-01-20
    相关资源
    最近更新 更多