посчитайте, сколько раз ключ имеет ans = "true" в объектах в массиве - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть этот массив.

array (size=5)
      0 => 
        object(stdClass)[37]
          public 'options' => string 'test 1' (length=6)
          public 'answer_check' => string 'false' (length=5)
          public 'justify_answer' => string 'test 1' (length=6)
          public 'score' => string '0' (length=1)
          public 'admin_id' => string '3' (length=1)
          public 'approved' => string 'approve' (length=7)
      1 => 
        object(stdClass)[38]
          public 'options' => string 'test 1' (length=6)
          public 'answer_check' => string 'true' (length=4)
          public 'justify_answer' => string 'test 2' (length=6)
          public 'score' => string '0' (length=1)
          public 'admin_id' => string '3' (length=1)
          public 'approved' => string 'approve' (length=7)
      2 => 
        object(stdClass)[39]
          public 'options' => string 'test 3' (length=6)
          public 'answer_check' => string 'true' (length=4)
          public 'justify_answer' => string 'test 3' (length=6)
          public 'score' => string '0' (length=1)
          public 'admin_id' => string '3' (length=1)
          public 'approved' => string 'approve' (length=7)

Что я хочу сделать, это

Сколько раз answer_check = "true"

Без использования петель.

Есть ли способ к этому?

Ответы [ 2 ]

1 голос
/ 03 апреля 2019

Filter array, а затем count количество значений в нем:

echo count(array_filter(
    $array, 
    function($v) { return $v->answer_check === 'true'; }
));
0 голосов
/ 03 апреля 2019

Немного чище кода. Объединение array_column и array_count_values.

echo array_count_values(array_column($array, "answer_check"))["true"];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...