Иерархически группируйте данные двухмерного массива по двум столбцам и объединяйте значения третьего столбца в каждом унPhp

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

Сообщение Гость »

Мне нужно сгруппировать данные из моего 2d-массива в ассоциативный массив ассоциативных массивов, где значения d являются ключами первого уровня, а значения s станут ключами второго уровня, а значения s станут ключами второго уровня, а Значения i должны быть (возможно, разделенными запятыми) значениями второго уровня в соответствующей группе.
Ввод:

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

$array = [
["d" => "7 Apr 2024", "s" => "pm", "i" => "el"],
["d" => "8 Apr 2024", "s" => "am", "i" => "mn"],
["d" => "12 Apr 2024", "s" => "pm", "i" => "mr"],
["d" => "12 Apr 2024", "s" => "am", "i" => "mr"],
["d" => "12 Apr 2024", "s" => "am", "i" => "da"],
["d" => "13 Apr 2024", "s" => "pm", "i" => "li"],
["d" => "14 Apr 2024", "s" => "am", "i" => "li"],
["d" => "15 Apr 2024", "s" => "mid", "i" => "nd"],
["d" => "15 Apr 2024", "s" => "pm", "i" => "da"]
]
Желаемый результат:

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

[
"7 Apr 2024" => ["pm" => "el"],
"8 Apr 2024" => ["am" => "mn"],
"12 Apr 2024" => ["am" => "mr,da", "pm" => "mr"],
"13 Apr 2024" => ["pm" => "li"],
"14 Apr 2024" => ["am" => "li"],
"15 Apr 2024" => ["pm" => "da", "mid" => "nd"]
]
Я попробовал каждую версию каждого цикла foreach, используя операторы if, операторы while и временные массивы. У меня возникают трудности с объединением значений второго уровня, когда дата одинакова.

Подробнее здесь: https://stackoverflow.com/questions/782 ... d-column-v

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