PHP переформатировать массив содержимого и считать то же значение - PullRequest
0 голосов
/ 19 февраля 2019

У меня динамически массив, например, такой:

[{"Name":"Sutejo","status":"Overload"},{"Name":"Paiman","status":"Overload"},{"Name":"Agung Hercules","status":"Idle"},{"Name":"Heru","status":"Busy"}]

Как мне поступить, если я хочу, чтобы мой массив стал таким?(посчитайте, если статус имеет то же значение и объедините в массив снова)

Ожидаемый результат:

[{"Overload":"2"},{"Idle":"1"},{"Busy":"1"}]

Пока мой код выглядит так:

public function getData(){
        $key_idle = 0;
        $key_busy = 0;
        $key_overload = 0;
        $data = $this->queries_trend->getDataCustomer();
        //print_r(json_encode($data));

        foreach ($data as $key => $value) {
            $val = $value['status'];
            if ($val == 'Idle') {
                $key_idle = $key_idle + 1;
            } elseif ($val == 'Busy') {
                $key_busy = $key_busy + 1;
            } elseif ($val == 'Overload') {
                $key_overload = $key_overload + 1;
            }
        }

    }

1 Ответ

0 голосов
/ 19 февраля 2019

Вы можете использовать array_count_values ​​ function:

$statuses = array_count_values(array_column($list, 'status'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...