计算数组中数组中元素的数量

问题描述 投票:1回答:4

我有个问题。我正在尝试使用主数组中我的数组中的特定元素来计算数组中的数组键

public function index()
{   
            $user=User::all();
            $lead=Lead::all();
            $role=Role::all();
            $lead=DB::table('lead')
                 ->select(DB::raw('lead.id','users.number','users.username', 'lead.leadid','lead.first_name', 'lead.last_name','lead.email' ,count('lead.email') ))
                 ->where ('lead.email', '>', 1)
                 ->groupBy('lead.email')
                 ->leftJoin('users', 'users.number', '=', 'lead.assign')
                 ->get();
                $user=DB::table('users')->select('users.number','users.username')->get();

                echo "<pre>";
                print_r($lead);
                die();
}

这是我打印出来时的输出

Array
(
[0] => Array
    (
        [id] => 63
        [number] => 3
        [username] => shankar
        [leadid] => zcrm_125720000016007771
        [first_name] => 
        [last_name] => Amoah Owusu Richmond
        [email] => [email protected]
    )

[1] => Array
    (
        [id] => 64
        [number] => 3
        [username] => shankar
        [leadid] => zcrm_125720000016007733
        [first_name] => Deus
        [last_name] => mathew
        [email] => [email protected]
    )

[2] => Array
    (
        [id] => 65
        [number] => 2
        [username] => james
        [leadid] => zcrm_125720000016007737
        [first_name] => bari
        [last_name] => safi
        [email] => [email protected]
    )

[3] => Array
    (
        [id] => 66
        [number] => 11
        [username] => nishupandey
        [leadid] => zcrm_125720000016007741
        [first_name] => Noorahmad
        [last_name] => Noor
        [email] => [email protected]
    )

[4] => Array
    (
        [id] => 67
        [number] => 12
        [username] => ravi123
        [leadid] => zcrm_125720000016007747
        [first_name] => munsanje
        [last_name] => nakeempa
        [email] => [email protected]
    )

[5] => Array
    (
        [id] => 68
        [number] => 8
        [username] => veerkishor
        [leadid] => zcrm_125720000016007751
        [first_name] => Noorahmad
        [last_name] => Noor
        [email] => [email protected]
    )

[6] => Array
    (
        [id] => 69
        [number] => 13
        [username] => rahul
        [leadid] => zcrm_125720000016007755
        [first_name] => painad
        [last_name] => sherzad
        [email] => [email protected]
    )
)

我想使用电子邮件计算元素,并检查元素出现在数组中的次数。我试图使用array_count_values但不太确定如何使用它。提前致谢

php arrays laravel
4个回答
1
投票

试试这个:

在您的DB :: raw中,您需要将“count”放在引号内。否则,您将只运行php count(如sizeof)。

<?php

    $lead=DB::table('lead')
    ->select(['lead.id','users.number','users.username', 'lead.leadid','lead.first_name', 'lead.last_name','lead.email'])
     ->select( DB::raw( "count('lead.email') as total") )
     ->where ('lead.email', '>', 1)
     ->groupBy('lead.email')
     ->leftJoin('users', 'users.number', '=', 'lead.assign')
     ->get();

0
投票

如果要计算大数组中具有特定属性的数组的数量,则需要遍历所有外部数组元素并检查内部数组元素。


0
投票

要计算有多少元素具有相同的电子邮件,我想你必须手动完成...

$emails = array();
foreach ($lead as $lineNumber => $line) {
    $email = $line['email'];
    if(array_key_exists("$email",$emails) {
        $emails["$email"]++;
    } else {
        $emails["$email"] = 1;
    }
}
echo "<pre>";
print_r($emails);

那是你要的吗 ?


0
投票

简单地使用Count($ array)你想要计算希望它会起作用

© www.soinside.com 2019 - 2024. All rights reserved.