PHP с использованием данных json. У меня есть куча сообщений с отметками времени. Я хочу создать массив с публикацией за каждый месяц - PullRequest
0 голосов
/ 16 июня 2020

Я пробовал несколько способов с операторами switch или foreach. Моя проблема - просто добавить одну вещь из следующего месяца. Я могу добавить все, что хочу, за 1 месяц, но как только наступит следующий месяц, я хочу только один пост, я не могу этого сделать.

Итак, я переключу формат метки времени, чтобы просто отображать месяцы, такие как 01, 02 и т. Д. с

date('m', strtotime($value[0]->created_time)

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

это часть класса, это вроде того, что у меня получилось.

$post_dec = json_decode($this->post_data, true);
$i =0;
foreach ($post_dec->data->posts as $postInfo) {

        $this->postdate = date('m', strtotime($postInfo->created_time));
        echo "post date:" . $this->postdate . "<br>";


        switch ($this->postdate) {
            case '01':
                $this->addMonth($postInfo, $i);


                break;
            case '02':
                $this->addMonth($postInfo, $i);

                break;
            case '03':
                $this->addMonth($postInfo, $i);

                break;
            case '04':
                $this->addMonth($postInfo, $i);

                break;
            case '05':
                $this->addMonth($postInfo, $i);

                break;
            case '06':
                $this->addMonth($postInfo, $i);

                break;
            case '07':
                $this->addMonth($postInfo, $i);

                break;
            case '08':
                $this->addMonth($postInfo, $i);

                break;
            case '09':
                $this->addMonth($postInfo, $i);

                break;
            case '10':
                $this->addMonth($postInfo, $i);

                break;
            case '11':
                $this->addMonth($postInfo, $i);

                break;
            case '12':
                $this->addMonth($postInfo, $i);

                break;



            default:

                break;
        }enter code here

И код addmonth выглядит так это

public function addmonth($postInfo, $i)
{



    $LMarr =  array(
        array(
            $postInfo
        )
    );

    if ($i == 0) {
        $this->longestByMonth = $LMarr;
    } else {
        array_push($this->longestByMonth, $LMarr);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...