Сгруппировать массив дат по месяцамPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Сгруппировать массив дат по месяцам

Сообщение Anonymous »

Я пытаюсь создать массив, в котором месяц является ключом, а каждый ключ содержит одну или несколько дат. Я начинаю с массива, который выглядит как $arr ниже. Примечание: я не контролирую структуру исходного массива, поступающего из API. Я просто добавил приведенный ниже $arr, чтобы проиллюстрировать и облегчить людям понимание и отладку.

Код: Выделить всё

$arr = array(
0 => array(
'date' => '2020-12-07'
),
1 => array(
'date' => '2020-12-19'
),
2 => array(
'date' => '2021-01-03'
),
3 => array(
'date' => '2020-01-18'
)
);
Поскольку мне нужно отображать даты иначе, мне нужно создать массив, содержащий название месяца и форматированную дату:

Код: Выделить всё

$sorted = array(); // This is the array I will return later.
foreach ( $arr as $day ) {
setlocale(LC_TIME, 'sv_SE');
$month          = strftime( '%B',   strtotime( $day['date'] ) );
$display_date   = trim( strftime( '%e %b', strtotime( $day['date'] ) ) );
}
Все, что я пытался сделать до сих пор, потерпело неудачу. Я даже не могу вспомнить все методы, если честно. Последнее, что я пробовал, было следующее (в рамках foreach()):

Код: Выделить всё

array_push($sorted, array(
$month => $display_date
));
При этом функция var_dump() сгенерировала перечислимый массив:

Код: Выделить всё

    array (size=4)
0 =>
array (size=1)
'December' => string '7 Dec' (length=5)
1 =>
array (size=1)
'December' => string '19 Dec' (length=6)
2 =>
array (size=1)
'Januari' => string '3 Jan' (length=5)
3 =>
array (size=1)
'Januari' => string '18 Jan' (length=6)
Я пытаюсь добиться следующего:
Все $display_date должны находиться ниже $month ключ. Ключ $month должен быть уникальным и содержать все даты для этого месяца.
Благодарен за любую помощь, которая поможет мне в правильном направлении, потому что я чувствую, что делаю что-то в корне неправильное.

Подробнее здесь: https://stackoverflow.com/questions/651 ... esby-month
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»