【问题标题】:PHP search array in array数组中的PHP搜索数组
【发布时间】:2012-03-28 14:39:33
【问题描述】:

我有这样的数组结果:

Array
(
    [0] => stdClass Object
        (
            [id_global_info] => 78
            [name] => rfhd
            [body] => dhfdhdf
            [contact_author] => mirko
            [date_created] => 2012-03-15 16:11:54
            [date_expires] => 2012-04-14 16:11:54
            [email] => 
            [location_id] => 1
            [category_id] => 26
            [tag] => fhdhfdhfd
            [info_type_id] => 4
            [user_id] => 3
        )

    [1] => stdClass Object
        (
            [id_global_info] => 79
            [name] => rfhd
            [body] => dhfdhdf
            [contact_author] => mirko
            [date_created] => 2012-03-15 16:11:56
            [date_expires] => 2012-04-14 16:11:56
            [email] => 
            [location_id] => 1
            [category_id] => 26
            [tag] => fhdhfdhfd
            [info_type_id] => 4
            [user_id] => 3
        )

    [2] => stdClass Object
        (
            [id_global_info] => 80
            [name] => rfhd
            [body] => dhfdhdf
            [contact_author] => mirko
            [date_created] => 2012-03-15 16:11:56
            [date_expires] => 2012-04-14 16:11:56
            [email] => 
            [location_id] => 1
            [category_id] => 26
            [tag] => fhdhfdhfd
            [info_type_id] => 4
            [user_id] => 3
        )
.
.
.
)

如何搜索多维数组并计算结果数(例如,我想搜索值为 4 的 info_type_id)?

【问题讨论】:

  • PHP count value in array 的可能副本。您刚刚通过检查 info_type_id == 1 提出了这个问题
  • 您将重复发布到您自己的问题中。不要那样做。

标签: php


【解决方案1】:

使用array_filter 过滤数组:

function test($arr) { 
    return $arr["info_type_id"] == 4; 
}

echo count(array_filter($yourArray, "test"));

【讨论】:

    【解决方案2】:

    foreach ?

    function searchMyCoolArray($arrays, $key, $search) {
       $count = 0;
    
       foreach($arrays as $object) {
           if(is_object($object)) {
              $object = get_object_vars($object);
           }
    
           if(array_key_exists($key, $object) && $object[$key] == $search) $count++;
       }
    
       return $count;
    }
    
    echo searchMyCoolArray($input, 'info_type_id', 4);
    

    【讨论】:

      【解决方案3】:

      你应该试试这个:

         $counter = 0;
          $yourArray; // this var is your current array
          foreach($yourArray as $object){
                if($object->info_type_id == 4){
                      $counter++;
                }
          }
      

      【讨论】:

        猜你喜欢
        • 2016-04-01
        • 2012-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-27
        • 1970-01-01
        相关资源
        最近更新 更多