Как получить счет на основе идентификатора, а затем перейти к некоторой переменной в php? - PullRequest
0 голосов
/ 11 апреля 2020

У меня есть проблема с объектом count с некоторым значением. Вот данные


$data = [
    {
        order_id: "131",
        order_status: "3",
    },
    {
        order_id: "130",
        order_status: "8",
    },
    {
        order_id: "129",
        order_status: "8",
    },
    {
        order_id: "128",
        order_status: "6",
    },
    {
        order_id: "127",
        order_status: "6",
    }
],

я хочу посчитать, сколько "order_status == 3/6/8", то я хочу передать в некоторую переменную, такую ​​как

if($order_status == '3') 
{
 $value = 'Accepted'; 
}
elseif ($order_status == 6) 
{
 $value = 'Delivered';
}
else {
 $value = 'Finished';
}

, то окончательный результат равен

Accepted = 1
Delivered = 2
Finished = 2

, и то, что я делаю, похоже


        $count = count($data);
        for ($i = 0; $i < $count; $i++) {
            $x = array();
            foreach($data as $row) {
                $x[$i] = $data[$i]->order_status;
            }

            $z[] = $x;


        }
        echo print_r(array_merge($z));  

, а результат равен

Array ( [0] => Array ( [0] => 8 ) [1] => Array ( [1] => 3 ) [2] => Array ( [2] => 8 ) [3] => Array ( [3] => 8 ) [4] => Array ( [4] => 8 ) [5] => Array ( [5] => 8 ) [6] => Array ( [6] => 8 ) [7] => Array ( [7] => 7 ) [8] => Array ( [8] => 7 ) [9] => Array ( [9] => 5 ) ) 1

, из того результата, который я хочу попробовать, пытаюсь объединить массив из множества массивов, но это не сработало, если я ищу документацию php, она вернется как

array(
 [0] => 1
 [1] => 2
 [2] => 2
);

, но я не думаю, что то, что я делаю здесь, правильно, и я не знаю, что делать следующий ... надеюсь, ребята, вы можете дать мне несколько советов, чтобы извлечь уроки из этого дела.

спасибо.

1 Ответ

0 голосов
/ 12 апреля 2020

Я нашел ответ на свой вопрос .. Я просто отредактировал свой код следующим образом

$count = count($data);
        for ($i = 0; $i < $count; $i++) {
            foreach($data as $row) {
                $x[$i] = $data[$i]->order_status;
            }   
        }

        $y = array_count_values($x);    
        $z = array();
        foreach($y as $key=>$value) {
            if($key == 8) {
                $text = "Finished";     

                $y[$text] = $y[$key];
                unset($y[$key]);        
            }
            elseif($key == 3) {
                $text = "Approved";

                $y[$text] = $y[$key];
                unset($y[$key]);        
            }
            elseif($key == 4) {
                $text = "Rejected";

                $y[$text] = $y[$key];
                unset($y[$key]);        
            }
            elseif($key == 7) {
                $text = "Hold";

                $y[$text] = $y[$key];
                unset($y[$key]);        
            }

        }

        echo json_encode($y);

, и полученный результат такой, как я хочу. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...