Php 计算对象中的元素数
我有一个提交模型,通过查询,我得到了所有提交的列表。然后为了进入每个提交,我使用了一个循环Php 计算对象中的元素数,php,laravel,laravel-5,Php,Laravel,Laravel 5,我有一个提交模型,通过查询,我得到了所有提交的列表。然后为了进入每个提交,我使用了一个循环 foreach ($submissions as $submission) { } 每个提交都有以下要素 [original:protected] => Array ( [id] => 1 [sessionKey] => dfshduifhsduifhsdiu [number] => 9 [isCompleted] => 0
foreach ($submissions as $submission) {
}
每个提交都有以下要素
[original:protected] => Array
(
[id] => 1
[sessionKey] => dfshduifhsduifhsdiu
[number] => 9
[isCompleted] => 0
[created_at] => 2017-07-29 23:14:02
[updated_at] => 2017-07-30 00:04:00
)
我想做的是生成一个数组,输出关于所有提交内容的一些细节。我需要的第一件事是提交的总数量。接下来,我需要完整(isComplete=1)和不完整(isComplete=0)记录的数量。为了实现这一点,我正在做
function submissionSummary($submissions) {
$reportArray = array();
$totalCount = 0;
$incompleteCount = 0;
$completeCount = 0;
foreach ($submissions as $submission) {
$totalCount += count($submission);
$reportArray["total"] = $totalCount;
if($submission['isCompleted'] === "0") {
$incompleteCount += count($submission);
$reportArray["incomplete_count"] = $incompleteCount;
} elseif ($submission['isCompleted'] === "1") {
$completeCount += count($submission);
$reportArray["complete_count"] = $completeCount;
}
}
return $reportArray;
}
我不确定是否有更有效的方法
现在我正在努力解决的是数字元素。这个数字可以是1到9之间的任何数字。我想做的是数一数每个数字的数字。因此,我想看看有多少份意见书有数字元素1,有多少份意见书有2等等。我能想到的实现这一点的唯一方法是通过大量的if语句,如果可能的话,我希望避免使用这些语句
任何关于我如何正确构建此结构的建议,都将不胜感激
谢谢简单的方法是放下foreach,只需执行以下操作:
function submissionSummary($submissions){
$report = []; // or array() if you prefer
$report['completeCount'] = $submissions->where('isCompleted', 1)->count();
$report['inCompleteCount'] = $submissions->where('isCompleted', 0)->count();
$report['totalCount'] = $submissions->count();
return $report;
}
简单的方法是放下foreach,只需执行以下操作:
function submissionSummary($submissions){
$report = []; // or array() if you prefer
$report['completeCount'] = $submissions->where('isCompleted', 1)->count();
$report['inCompleteCount'] = $submissions->where('isCompleted', 0)->count();
$report['totalCount'] = $submissions->count();
return $report;
}
提交数据是来自sql语句还是来自其他来源?它来自使用->get()的Elequent查询提交数据是来自sql语句还是来自其他来源?它来自使用->get()的Elequent查询我将对$report['completeCount']和$report['completeCount'求和为了避免再进行一次简单的选择谢谢,这很完美我认为您不会有任何性能改进,因为它已经是内存中的一个对象,而不是数据库的查询,但您可以这样做…为了避免再进行一次简单的选择谢谢,我会将$report['completeCount']和$report['completeCount']相加,这是完美的,我认为您不会有任何性能改进,因为它已经是内存中的一个对象,而不是数据库的查询,但您可以这样做。。。