我正在尝试制作日记帐类型的应用程序。因为我希望它按日期排序,所以我把我拉的日期作为键,然后将文本作为数组中的值。我想要做的只是显示一次日期,即使有两个匹配的键。
所以在下面的例子中,理想情况下会返回:
1/2/2013
entry 1
entry 2
1/5/2013
this is another day
从这个输入:
$array = array('1/2/2013'=>'entry 1', '1/2/2013'=>'entry 2',
'1/5/2013'=>'this is another day');
//loop through array and echo the date and value, but only echo date if havent already
答案 0 :(得分:0)
据我所知,密钥必须是唯一标识符,但您可以取消设置并创建一个新数组,并将其作为密钥,以便您可以拥有多个数据,即
Array
0
Date1 => string
1
Date2 => array("string 1","string2")
答案 1 :(得分:0)
您可以通过创建多维数组在同一天允许多个事件。如:
$events = array(
'01/01/2010' => array(
'event1', 'event2'
),
'02/02/2011' => array(
'event3', 'event5'
)
);
在此之后,您应该能够为每个事件循环遍历数组:
foreach($events as $date => $data) {
echo $date .' - '. implode(',', $data);
}
答案 2 :(得分:0)
在PHP中无法使用该数组结构,因为数组键是唯一的。分配变量后,您会注意到数组只有两个元素,而不是三个,因为第二个条目会覆盖第一个。
如果您可以先按日期订购参赛作品,请考虑以下内容:
<?php
$posts = array(
array('date' => '1/2/2013', 'title' =>'entry 1'),
array('date' => '1/2/2013', 'title' =>'entry 2'),
array('date' => '1/5/2013', 'title' =>'entry 3'),
);
$date = '';
foreach ($posts as $p) {
if ($date != $p['date']) {
echo 'Date: ' . $p['date'] . "<br/>";
$date = $p['date'];
}
echo 'Title: ' . $p['title'] . "<br/>";
}
答案 3 :(得分:0)