根据PHP中的值获取两个数组的差

咀嚼

下面是我要比较的两个数组的示例。我想做的是比较是检查array1中是否存在来自array2的任何值并返回差值。

$array1 = ["8:00 am","8:30 am","10:00 am","11:00 am","11:45 am","1:30 pm","2:30 pm","3:30 pm","4:15 pm", "8:00 am","8:30 am","10:15 am","11:30 am","1:00 pm","2:30 pm","3:45 pm","8:00 am"];

$array2 = ["08:00 am","08:45 am","09:30 am","10:15 am","11:00 am","11:45 am","12:30 pm","01:15 pm", "02:00 pm", "02:45 pm","03:30 pm","04:15 pm","05:00 pm"];


$result = array_diff_assoc($array2,$array1);

var_dump时的结果:

array(13) {
  [0]=>
  string(8) "08:00 am"
  [1]=>
  string(8) "08:45 am"
  [2]=>
  string(8) "09:30 am"
  [3]=>
  string(8) "10:15 am"
  [4]=>
  string(8) "11:00 am"
  [5]=>
  string(8) "11:45 am"
  [6]=>
  string(8) "12:30 pm"
  [7]=>
  string(8) "01:15 pm"
  [8]=>
  string(8) "02:00 pm"
  [9]=>
  string(8) "02:45 pm"
  [10]=>
  string(8) "03:30 pm"
  [11]=>
  string(8) "04:15 pm"
  [12]=>
  string(8) "05:00 pm"
}
Jitendra yadav

PHP将通过直接比较字符串来检查差异,这里肯定没有相同格式的输入。

解:

  • 首先更改$array1为标准格式,然后查找差异。
  • 为了找到这些阵列之间的区别,你需要array_diffarray_diff_assoc

array_diff

  • 返回一个数组,其中包含array1中所有其他数组中不存在的所有条目

array_diff_assoc

  • 通过附加索引检查计算数组的差
$formatted_array = array_map(function($time){
    return date("h:i a", strtotime($time) );
}, $array1);

$result = array_diff($array2, $formatted_array);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章