doushe8577 2019-05-26 13:23
浏览 39
已采纳

数组差异和元素部分相等

I would like to compare two arrays excluding elements partially equal.

I have reached the following result:

1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
21 22 23 24 25

The desired result is:

21 22 23 24 25

Attempt:

$aa = array("1 2 3 4 5", "6 7 8 9 10", "11 12 13 14 15", "16 17 18 19 20", "21 22 23 24 25");
$bb = array("1 2", "6 7 8", "11 12 13 14", "16 17 18 19 20");
$final = array_diff($aa, $bb);
print_r($final)
  • 写回答

1条回答 默认 最新

  • dongzhu7329 2019-05-26 13:49
    关注

    You can use preg_grep in order to not have to do any manipulation the the data.
    This will regex to see what is matching and then you just use array_diff.

    $aa = array("1 2 3 4 5", "6 7 8 9 10", "11 12 13 14 15", "16 17 18 19 20", "21 22 23 24 25");
    $bb = array("1 2", "6 7 8", "11 12 13 14", "16 17 18 19 20");
    
    $exclude = [];
    foreach($bb as $b){
        $exclude = array_merge($exclude, preg_grep("/^". preg_quote($b) . "/", $aa));
    }
    $final = array_diff($aa, $exclude);
    
    print_r($final);
    

    https://3v4l.org/XI9Jd

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 求快手直播间榜单匿名采集ID用户名简单能学会的
  • ¥15 DS18B20内部ADC模数转换器
  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历