Php 在临时数组中添加计数值

Php 在临时数组中添加计数值,php,arrays,Php,Arrays,我在foreach循环中计算两天之间的差异 foreach ($result as $key => $value) { # code... //$temp[$value->user_id]=$value->user_id; $count_dates=daysBetween($value->user_source_history_added,$current_date); $tmp_array[$count_dates][] = $coun

我在foreach循环中计算两天之间的差异

foreach ($result as $key => $value) {
    # code...

    //$temp[$value->user_id]=$value->user_id;
    $count_dates=daysBetween($value->user_source_history_added,$current_date);
    $tmp_array[$count_dates][] = $count_dates;
}
在调试tmp_阵列时,我得到了如下结果

Array
(
    [0] => Array
        (
            [0] => 0
            [1] => 0
            [2] => 0
            [3] => 0
            [4] => 0
            [5] => 0
            [6] => 0
        )

    [1] => Array
        (
            [0] => 1
        )

    [3] => Array
        (
            [0] => 3
            [1] => 3
            [2] => 3
            [3] => 3
        )
)
现在我想数一数0,1,2,3等的数量。所以现在有7个0,1个1,4个3。 如何获得所有这些数字的计数,以及如何限制仅在数组20之前获得计数

我试过这个:

foreach($tmp_array as $tmp_val)
{
    count($tmp_val)
}

但是我得到的主数组的计数是3,如果您想将所有内容的计数相加:

$count = 0;
foreach($tmp_array as $tmp_subarray)
{
    foreach($tmp_subarray as $tmp_val) {
        if($count < 20) {
            $count++;
        }
    }
}

这将计算一个数组的所有值,无论有多少个维度(假设值是数组或数字)。这将一直运行,直到主数组达到$key==20为止

$total = 0;

function addToTotal($number) {
    glob $total;
    $total = $total + $number;
}

function countArrayValues($array) {
    foreach($array as $key => $value) {
        if(is_array ($value) {
            countArrayValues($value);
        } else {
            addToTotal($value);
        }
    }
}

$mainArray; // <-- your array;

foreach($mainArray as $key => $value) {
    if($key <= 20) {
        countArrayValues($value);
    } else {
        break;
    }
}

echo $total;
$total=0;
函数addtotal($number){
全球美元总额;
$total=$total+$number;
}
函数CountArrayValue($array){
foreach($key=>$value的数组){
if(is_数组($value){
CountArrayValue($value);
}否则{
加总(价值);
}
}
}
$mainArray;//$value){
如果($key请尝试以下操作:

$array_number_of_numbert = array();
foreach($tmp_array as $tmp_val_num => $tmp_val)
{
    $array_number_of_numbert[$tmp_val_num]= $tmp_val;
}
for($i = 0; $i <=20; $i++)
{
    if(isset($array_number_of_numbert[$i])) echo count($array_number_of_numbert[$i])." ". $i."'s\n";
}
$array\u number\u of\u numbert=array();
foreach($tmp_数组作为$tmp_val_num=>$tmp_val)
{
$array\u number\u of_numbert[$tmp\u val\u num]=$tmp\u val;
}

对于($i=0;$i Update
if($count\u array)这会给我一系列的0:(当n的值不存在时,它会中断。未定义offset@phantomphoenix简单,只需在末尾添加以下内容:
foreach($found\u numbers as$number){打印“$number”的数字记录:“$results[$number][0]。”\n”}
$array_number_of_numbert = array();
foreach($tmp_array as $tmp_val_num => $tmp_val)
{
    $array_number_of_numbert[$tmp_val_num]= $tmp_val;
}
for($i = 0; $i <=20; $i++)
{
    if(isset($array_number_of_numbert[$i])) echo count($array_number_of_numbert[$i])." ". $i."'s\n";
}
$found_numbers=array();
$results=array();
$count_array=0;
    foreach($tmp_array as $first_array)
{   $count_array++;
    foreach($first_array as $second_array)
    { 
      if($count_array<=20){
        if (in_array($second_array, $found_numbers)) {
          $results[$second_array][0]++;
        }
        else{
         array_push($found_numbers,$second_array);
         $results[$second_array] = array();
         array_push($results[$second_array],1);
         }
      } 
    }
}
print($results[0][0]); //will give you 7
print($results[n][0]);  //will give the record of the number n in your array