У меня есть следующий набор дат и мест - в основном каждая дата должна будет содержать несколько мест. Я пытаюсь отобразить массив ниже в виде следующего формата:
20140411
Бейсингстоук
Salisbury
20140405
Бейсингстоук
20140419
Salisbury
... и так далее
Массив:
Array
(
[20140411] => Array
(
[0] => Array
(
[0] => Basingstoke
)
[1] => Array
(
[0] => Salisbury
)
)
[20140405] => Array
(
[0] => Array
(
[0] => Basingstoke
)
)
[20140419] => Array
(
[0] => Array
(
[0] => Salisbury
)
)
[20140427] => Array
(
[0] => Array
(
[0] => Basingstoke
)
)
)
Я считаю, что я близко, но у меня всегда был какой-то ментальный блок, когда дело доходило до работы с массивами/ключами и т.д. Я пытаюсь сделать вложенный цикл foreach
, который отображает даты отлично, но я просто получаю "Массив" "выводится для местоположений:
foreach ($dates as $date => $dateKey) {
// Format the date
$theDate = DateTime::createFromFormat('Ymd', $date);
$theFormattedDate = $theDate->format('d-m-Y');
echo '<h4>'.$theFormattedDate.'</h4>';
foreach ($dateKey as $key => $venue) {
echo $venue;
}
}
Может ли кто-то определить, где я здесь ошибся?
РЕДАКТИРОВАТЬ:
Здесь создаются массивы, если это помогает?
$dates = array();
while ( have_rows('course_date') ) : the_row();
$theVenue = get_sub_field('venue');
// Use the date as key to ensure values are unique
$dates[get_sub_field('date')][] = array(
$theVenue->post_title
);
endwhile;
В вашем случае местом является массив.
Это всегда массив с единственным элементом, который вы можете указать как [0].
Таким образом,...
foreach ($dates as $date => $dateKey) {
// Format the date
$theDate = DateTime::createFromFormat('Ymd', $date);
$theFormattedDate = $theDate->format('d-m-Y');
echo '<h4>'.$theFormattedDate.'</h4>';
foreach ($dateKey as $key => $venue) {
echo $venue[0];
}
}
Или, если вы можете иметь несколько мест в этом массиве последнего уровня, вы можете переписать внутренний foreach, добавив еще один:
foreach ($dates as $date => $dateKey) {
// Format the date
$theDate = DateTime::createFromFormat('Ymd', $date);
$theFormattedDate = $theDate->format('d-m-Y');
echo '<h4>'.$theFormattedDate.'</h4>';
foreach ($dateKey as $key => $venues) {
foreach($venues as $v) {
echo $v;
}
}
}
Места вложены на один уровень глубже, вам нужен еще один foreach
.
Ничего, другой парень сказал, что этот плагин должен работать так: