/ / Багатомірний масив - групування за місяцем - php, масиви, багатовимірний масив

Багатомірний масив - групування за місяцем - php, масиви, багатовимірний масив

Я намагаюся пробитися через роботу більшез багатовимірними масивами, щоб зменшити кількість SQL-запитів, які мені доведеться зробити. Проблема полягає в тому, вони є новими для мене. Чи може хто-небудь дати мені певне керівництво, як це зробити?

Ось приклад масиву:

Array
(
[0] => Array
(
[0] => 2013-07-01
[1] => Andy
[2] => Hopkins Module
)

[1] => Array
(
[0] => 2013-07-01
[1] => Frank
[2] => Rotation
)

[2] => Array
(
[0] => 2013-07-01
[1] => James
[2] => Morning Report
)

[3] => Array
(
[0] => 2013-08-01
[1] => James
[2] => Noon Conference
)

Цей масив триває з набагато більше імен імісяці Дані впорядковуються за назвою, тобто всі елементи Джеймса перераховані в групу. Кожна група імен може мати одну або кілька точок даних. Що я хотів би зробити, це цикл через кожен місяць і друкувати друге та третє Я знаю, як зробити заяву на час, щоб роздрукувати все, але я не знаю, як групувати всі дані за місяць.

Відповіді:

1 для відповіді № 1

Дайте це спробу (він припускає, що масив, який ви показав, присвоюється змінній $old_array):

foreach ($old_array as $key => $value) {
$new_array[$value[0]][] = array($value[1], $value[2]);
}
// Uncomment the next line to print the new array
// print_r($new_array);

0 для відповіді № 2

Я зміг це зробити за допомогою модифікованої версії коду jerdiggity ... і єдиним способом, яким я міг би отримати його на роботу, є жахливо потворним. Чи є ці багато вкладені цикли загальними?

foreach ($incomplete as $key => $value) {
$new_array[$value[0]][$value[1]][] = $value[2];
}


foreach($months as $k=>$v) {
$format = formatDate($v);
echo $format; // date formatted as readable
foreach($new_array[$format] as $k1=>$v1){
echo $k1."<br>"; //name of person
foreach($v1 as $k2=>$v2) {
echo $v2."<br>"; //third value or original array
}
}
}