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 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?