2012-03-28 91 views
5

Tôi đã mảng kết quả như thế này:PHP mảng tìm kiếm trong mảng

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 
     ) 
. 
. 
. 
) 

Làm thế nào tôi có thể tìm kiếm một mảng đa chiều và đếm số lượng kết quả (ví dụ tôi muốn tìm kiếm info_type_id với giá trị của 4)?

+3

thể trùng lặp của [PHP giá trị đếm trong mảng] (http://stackoverflow.com/questions/9909143/php-count-value-in -mảng). Bạn chỉ cần hỏi điều này với việc kiểm tra 'info_type_id == 1' – jprofitt

+0

Bạn đang đăng các bản sao trùng lặp tới các câu hỏi của riêng bạn. Đừng làm thế. – netcoder

Trả lời

5

với 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); 
+0

Nó đang hoạt động. Cảm ơn bạn :) – Sasha

1

Bạn nên cố gắng này:

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

Sử dụng array_filter để lọc các mảng:

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

echo count(array_filter($yourArray, "test")); 
Các vấn đề liên quan