Я намагаюся пробитися через роботу більшез багатовимірними масивами, щоб зменшити кількість 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
}
}
}