【问题标题】:filter json array php by string按字符串过滤json数组php
【发布时间】:2011-01-21 23:51:56
【问题描述】:

我有一个 JSON 数组,它使用 json_decode() 来设置数据。

我正在寻找匹配数组中的某个项目,如果匹配,我需要返回数组的整个“行”,而不仅仅是像我所有的 filter_array() sn-ps 那样的单个字段发现。

谁能指出我正确的方向?

调用json_decode()之前的数据如下:

[
    {
        "format": "default",
        "media_url": "http://cpe.delvenetworks.com/000337/011911_redzonefull.mp3",
        "title": "RZ - Jim Trotter",
        "thumb_url": "",
        "date_posted": "2011-01-19 14:58:45",
        "media_type": "audio"
    },
    {
        "format": "default",
        "media_url": "http://cpe.delvenetworks.com/000337/f10bestof2010offense.mp4",
        "title": "Best of O - 2010",
        "thumb_url": "http://img.delvenetworks.com/bV7.120x66.jpeg",
        "date_posted": "2011-01-18 16:01:45",
        "media_type": "video"
    },
    {
        "format": "default",
        "media_url": "http://cpe.delvenetworks.com/000337\f10bestof2010defense.mp4",
        "title": "Best od D - 2010",
        "thumb_url": "http://img.delvenetworks.com/UqK.120x66.jpeg",
        "date_posted": "2011-01-18 16:01:45",
        "media_type": "video"
    }

我需要匹配media_type

【问题讨论】:

    标签: php arrays json


    【解决方案1】:

    这样的?

    function filter($filter, $array){
        $filtered_array = array();
        for($i = 0; i < count(array); i++){
            if($array[i].media_type == $filter)
                $filtered_array[] = array[i]
        }
        return $filtered_array
    }
    

    【讨论】:

      【解决方案2】:

      更正:

      function filter($filter, $array){
          $filtered_array = $array();     
          for ($i = 0; $i < count($array); $i++){
              if($array[$i].media_type == $filter)
                  $filtered_array[] = $array[$i];
          }
          return $filtered_array;
      }
      

      【讨论】:

        【解决方案3】:

        PHP


        media_type_array($json,$filter) // function name <br/>
        { 
        
        $filtered_array=array();
        
        foreach($json as $key=>$value)
        
        {
        
        foreach($value as $key1=>$value1)
        
          {
        
                if ($value1==$filter)
                {
                $filtered_array[]=$value;
                }
            }
        
        }
        
        return $filtered_array;
        
        }
        

        【讨论】:

          猜你喜欢
          • 2019-04-25
          • 1970-01-01
          • 2019-12-30
          • 2018-12-29
          • 1970-01-01
          • 2017-07-15
          • 2022-07-04
          • 2011-08-22
          相关资源
          最近更新 更多