我们有一个foreach循环,该循环是我们的控制台命令之一,它在被转到Json之后构建了一个要放入数据库的数组。
为了获取特定值之一,我们想引用循环中提取的其他两个值
下面是循环,我们要从“ sales”和“ quotes”查询的结果中获取“ conversionRate”值。我不知道该如何在仍处于循环中的情况下调用它们。
foreach ($users as $user) {
$todaysCcActionsArray[] = [
'name' => DB::Table('sw_users')->where('EmailAddress', $user)->value('FirstName'),
'code' => $user,
'sales' => Order::where('Status', 'BOOKING')
->whereNotIn('Product', ['commercial_insurance', 'home_insurance'])
->where('MasterOrderNumber', 0)
->whereNull('OriginalOrderNumber')
->where('CallCentreID', '!=', $user)
->whereDate('OrderDate', '=', date('Y-m-d'))->count(),
'quotes' => Order::where('Status', 'QUOTE')
->whereNotIn('Product', ['commercial_insurance', 'home_insurance'])
->where('MasterOrderNumber', 0)
->whereNull('OriginalOrderNumber')
->where('CallCentreID', '!=', $user)
->whereDate('OrderDate', '=', date('Y-m-d'))->count(),
'conversionRate' => 'sales' / 'quotes' * 100
];
}
更新
这是打印出来后的样子。
array:16 [
0 => array:4 [
"name" => "Melissa"
"code" => "mkingnew"
"sales" => 2
"quotes" => 1
]
1 => array:4 [
"name" => "Wendy"
"code" => "wjonesnew"
"sales" => 2
"quotes" => 1
]
2 => array:4 [
"name" => "Sarah"
"code" => "sdickersonnew"
"sales" => 2
"quotes" => 1 ]
答案 0 :(得分:1)
您正在有效地做的是尝试在创建数组条目时使用其自身的值...您不能这样做:)
您可以做的是将条目分段构建,然后将其添加到数组中:
foreach ($users as $user) {
$entry = array(
'name' => DB::Table('sw_users')->where('EmailAddress', $user)->value('FirstName'),
'code' => $user,
'sales' => Order::where('Status', 'BOOKING')
->whereNotIn('Product', ['commercial_insurance', 'home_insurance'])
->where('MasterOrderNumber', 0)
->whereNull('OriginalOrderNumber')
->where('CallCentreID', '!=', $user)
->whereDate('OrderDate', '=', date('Y-m-d'))->count(),
'quotes' => Order::where('Status', 'QUOTE')
->whereNotIn('Product', ['commercial_insurance', 'home_insurance'])
->where('MasterOrderNumber', 0)
->whereNull('OriginalOrderNumber')
->where('CallCentreID', '!=', $user)
->whereDate('OrderDate', '=', date('Y-m-d'))->count(),
);
$entry['conversionRate'] = $entry['sales'] / $entry['quotes'] * 100;
$todaysCcActionsArray[] = $entry;
}