簡體   English   中英

計算多維數組中的唯一值

[英]Count unique values in a multi dimensional array

我有一個需要為其創建計數的數據數組。 該陣列通過數據庫連接構建。

Array (
     [0]=array(
          [cause] => "Bob"
          [cause_month] =>'7/2014'
     )
     [1]=array(
          [cause] => "Tim"
          [cause_month] =>'7/2014'
     )
     [2]=array(
          [cause] => "Bob"
          [cause_month] =>'7/2014'
     )
     [3]=array(
          [cause] => "Bob"
          [cause_month] =>'7/2014'
     )
     [4]=array(
          [cause] => "Tim"
          [cause_month] =>'8/2014'
     )
     [5]=array(
          [cause] => "Tim"
          [cause_month] =>'8/2014'
     )
     [6]=array(
          [cause] => "Sally"
          [cause_month] =>'8/2014'
     )
)

要輸出如下所示的數組:

Array (
    [7/2014] => [Bob]=>3,[Tim]=>1
    [8/2014] => [Tim]=>2,[Sally]=>1
)

我已經查看了幾個示例,這些示例按cause_month提供了獨特的原因,但是無法獲得該原因在那個cause_month中相同的次數。

這是我從另一篇文章中摘錄的內容:

$class_array = array();
foreach ($sb_array as $sa) {
    $class_array[$sa['cause_month']][] = array('cause' => $sa['cause']);
}

輸出:

[7/2014] => Bob , Tim
[8/2014] => Tim , Sally

這真的很接近,但是我仍然需要每個cause_month的每個原因的計數

這應該為您工作:

還要使用名稱( cause )作為第二維密鑰,如果不存在,則將其初始化為0。 然后,只需簡單地為每個事件增加計數。

$class_array = array();
foreach ($sb_array as $sa) {
    if(!isset($class_array[$sa['cause_month']][$sa["cause"]]))
        $class_array[$sa['cause_month']][$sa["cause"]] = 0;
    $class_array[$sa['cause_month']][$sa["cause"]]++;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM