Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在数组中计算数组中的元素数_Php_Arrays_Laravel - Fatal编程技术网

Php 在数组中计算数组中的元素数

Php 在数组中计算数组中的元素数,php,arrays,laravel,Php,Arrays,Laravel,我有个问题。我试图使用主数组中数组内的特定元素来计算数组中的数组键 public function index() { $user=User::all(); $lead=Lead::all(); $role=Role::all(); $lead=DB::table('lead') ->select(DB::raw('lead.id','users.numb

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

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();
}

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

计算有多少元素具有相同的电子邮件,我猜您必须手动完成…

<?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();
$emails=array();
foreach($lineNumber=>$line的潜在客户){
$email=$line['email'];
如果(数组\键\存在($email,$email){
$email[“$email”]++;
}否则{
$email[“$email”]=1;
}
}
回声“;
Array
(
[0] => Array
    (
        [id] => 63
        [number] => 3
        [username] => shankar
        [leadid] => zcrm_125720000016007771
        [first_name] => 
        [last_name] => Amoah Owusu Richmond
        [email] => ramoahhowusu50@gmail.com
    )

[1] => Array
    (
        [id] => 64
        [number] => 3
        [username] => shankar
        [leadid] => zcrm_125720000016007733
        [first_name] => Deus
        [last_name] => mathew
        [email] => mathewdeus@gmail.com
    )

[2] => Array
    (
        [id] => 65
        [number] => 2
        [username] => james
        [leadid] => zcrm_125720000016007737
        [first_name] => bari
        [last_name] => safi
        [email] => barisafi57@gmail.com
    )

[3] => Array
    (
        [id] => 66
        [number] => 11
        [username] => nishupandey
        [leadid] => zcrm_125720000016007741
        [first_name] => Noorahmad
        [last_name] => Noor
        [email] => noorahmad.noor81@gmail.com
    )

[4] => Array
    (
        [id] => 67
        [number] => 12
        [username] => ravi123
        [leadid] => zcrm_125720000016007747
        [first_name] => munsanje
        [last_name] => nakeempa
        [email] => mnakeempa@yahoo.com
    )

[5] => Array
    (
        [id] => 68
        [number] => 8
        [username] => veerkishor
        [leadid] => zcrm_125720000016007751
        [first_name] => Noorahmad
        [last_name] => Noor
        [email] => noorahmad.noor71@gmail.com
    )

[6] => Array
    (
        [id] => 69
        [number] => 13
        [username] => rahul
        [leadid] => zcrm_125720000016007755
        [first_name] => painad
        [last_name] => sherzad
        [email] => painda12sherzad@gmail.com
    )
)
打印(电子邮件);

这就是您想要的吗?

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

尝试以下操作:

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

只需使用您想要计数的Count($array)

希望它能起作用

你能解释一下什么不起作用吗?也许
$email
不是一个字符串,必须添加双引号(我编辑答案)它起作用了,但事实证明很难通过编程指向某个元素…实际上需要使用另一个关于DB::select的答案
<?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();