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