Laravel : How to count specific array values

时间:2018-06-18 11:38:27

标签: php laravel

I have been trubling with session array part...as my session array have 3 different value coming from database ...easy ...medium ...hard....how i count these specificly?

   Session::push('getscoresession',$getscore);
   Session::push('level',$level);


     $getsession = [  'qid' => $getidvalue,  'answer' => $getanswervalue];
     Session::push('answer', $getsession);


     $score = array_count_values(Session::get("level"));


     return view('score',compact('score'));

getting this error message: array_count_values(): Can only count STRING and INTEGER values!`

2 个答案:

答案 0 :(得分:0)

以下是您的解决方案:

$array = [
    0 => 'easy',
    1 => 'easy',
    2 => 'easy',
    3 => 'medium',
    4 => 'medium',
    5 => 'medium',
    6 => 'hard',
    7 => 'hard',
    8 => 'hard',
    9 => 'hard',
   10 => 'hard'
];

echo "<pre>";
print_r($array);
var_dump(array_count_values($array));

另一种解决方案:

// This is static
$stats = [
    'easy' => 0,
    'medium' => 0,
    'hard' => 0,
];

// Alternatively dynamic way:
$a = array_flip(array_unique($array));
$b = array_fill_keys(array_keys($a), 0);

foreach($array as $value) {
    $stats[$value]++; // Static Way
    $b[$value]++;  // Dynamic way
}

echo "<pre>";
print_r($stats);
print_r($b);
exit;

您可以使用http://www.writephponline.com/执行上述代码。

在你的blad文件中:

使用foreach

@foreach($data as $key => $value)
    {{ $key .'-'. $value }}
@endforeach

如果您还有任何疑问,请与我们联系。

答案 1 :(得分:-1)

可能是因为您的数组中可能包含null个值。

可能的解决方案:

  1. 从数组中删除null值。
  2. 或使用array_filter
  3. 查看此示例: https://repl.it/repls/TameFarLine