我有以下日期和地点数组 - 基本上每个日期都需要允许多个地方。我试图将下面的数组显示为以下格式:
20140411
贝辛斯托克
梳
20140405
Basingstoke的
20140419
梳
......等等
数组:
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 :(得分:5)
在你的情况下,场地是一个阵列 它始终是一个数组,其中唯一的元素可以解析为[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;
}
}
}
答案 1 :(得分:3)
地方的嵌套深度为1级,还需要一个foreach
。
没关系,其他人说这个插件应该像那样工作:)