doupao1530 2018-02-10 17:13
浏览 63
已采纳

过滤具有相似字符的多维数组

I have a json file and I need to look for similar values in both columns. For the JSON, It has 5,000 rows so I don't think looping to each is the right way. My json looks like this:

{
   "code": "8485",
   "title": "A BAD DREAM",
   "artist": "KEANE"
 },
 {
   "code": "50957",
   "title": "A BIG HUNK O' LOVE",
   "artist": "ELVIS PRESLEY"
 },
 {
   "code": "55481",
   "title": "A BLUE GUITAR",
   "artist": "TANYA TUCKER"
 },

For example, I will look for things that has the letter 'B', it should look those that contain a letter 'B' for both the title and artist.

So what I did was converting the JSON to a multidimensional array. And I can't make the array_filter work with a multidimensional array.

  • 写回答

2条回答 默认 最新

  • doudang2817 2018-02-10 17:23
    关注

    This is how you can use array_filter

    And you can use strpos to check if string contains a string.

    Note: This will check if title OR artist (either one) has the search word or letter. If you are looking for both, see Syscall's answer. :)

    $arr = '[
    {
       "code": "8485",
       "title": "A BAD DREAM",
       "artist": "KEANE"
     },
     {
       "code": "50957",
       "title": "A BIG HUNK O\' LOVE",
       "artist": "ELVIS PRESLEY"
     },
     {
       "code": "55481",
       "title": "A BLUE GUITAR",
       "artist": "TANYA TUCKER"
     }
     ]
    ';
    
    $arr = json_decode( $arr, true );
    
    $search = "O"; /* Search letter O */
    
    $result = array_filter( $arr, function( $v ) use ( $search ) {
        return strpos($v[ "title" ], $search) !== false || strpos($v[ "artist" ], $search) !== false;
    });
    
    echo "<pre>";
    print_r( $result );
    echo "</pre>";
    

    This will result to:

    Array
    (
        [1] => Array
            (
                [code] => 50957
                [title] => A BIG HUNK O' LOVE
                [artist] => ELVIS PRESLEY
            )
    
    )
    

    For more info: http://php.net/manual/en/function.array-filter.php

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c