2013-06-26 90 views
0

我正在嘗試創建日記型應用程序。因爲我希望按日期排序,所以我把我拉的日期作爲關鍵字,然後把文本作爲數組中的值。我想要做的只是顯示一次日期,即使有兩個匹配的鍵。如何僅在未顯示數組密鑰時才顯示數組密鑰

所以在下面的例子中,將理想的回報:

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

該數組結構是不可能的,因爲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/>"; 
} 
0

據我所知鍵必須是唯一的標識符,但是你可以以此爲關鍵字創建並創建一個新陣列,以便您可以擁有多個數據即

Array 
0 
Date1 => string 
1 
Date2 => array("string 1","string2") 
0

通過創建多維數組,您可以在同一天允許多個事件。如:

$events = array(
    '01/01/2010' => array(
    'event1', 'event2' 
), 
    '02/02/2011' => array(
    'event3', 'event5' 
) 
); 

在這之後,你應該能夠循環數組爲每個事件結束:

foreach($events as $date => $data) { 
    echo $date .' - '. implode(',', $data); 
} 
+0

他可以改變輸入嗎? – zod

+0

@zod - 也許是一個問題,儘管引用:「我把日期,拉作爲關鍵,然後文本作爲數組中的值'聽起來像它可以 – AlexP