2014-09-10 49 views
-1

我有3個對象具有相同的變量,但呈現不同的值。
001 - Title one
002 - Title two
003 - Title three

我需要檢查網頁的另一個塊,如果這前三個是相同的。唯一想到的是將這些變量存儲在$_SESSION中。到現在爲止還挺好。問題是它只存儲最後的值(顯然)。

CODE

/* -- block one --*/ 
session_start(); 
$_SESSION['lasttitle'] = $item->getTitle; 
echo $item->getTitle(); //rendering 1st object 
echo $item->getTitle(); //rendering 2nd object 
echo $item->getTitle(); //rendering 3rd object 

/* -- block two --*/ 
session_start(); 
$last3 = $_SESSION['lasttitle']; 
if($item->getTitle() != $last3) { 
//don't render last 3 
} 
+1

存儲最後三個項目的一個*數組* *! – deceze 2014-09-10 12:41:22

+0

絕對@deceze !!!但是......怎麼樣? – fiskolin 2014-09-10 14:07:14

回答

1
$_SESSION['lastTitles'][] = $item->getTitle(); 
$_SESSION['lastTitles'] = array_slice($_SESSION['lastTitles'], -3); 

.. 

if (in_array($item->getTitle(), $_SESSION['lastTitles'])) .. 

此存儲最後三項冠軍的數組,並檢查標題是否是這個數組英寸

0

我認爲存儲數據array在會議可能會幫助你。只需將您需要的所有標題收集到一個數組中,並將其放入$_SESSION(而不是一個變量)。下一頁您將能夠分析您擁有的數據並選擇您需要的變量。

0

創建多維會議:

$_SESSION['lasttitle'][$item->id] = $item->getTitle(); 
$_SESSION['lasttitle'][$item2->id] = $item2->getTitle(); 
$_SESSION['lasttitle'][$item3->id] = $item3->getTitle(); 

,並檢查該元素是數組:

$total = 0; 
foreach ($items as $item) { 
    if (isset($_SESSION['lasttitle'][$item->id])) { 
     $total++; 
    } 
} 

if ($total == 3) { 
    // Do something, it's all 3 titles in session! 
} 

我知道這可能是更好的解決辦法,但我不完全理解算法。此外,比較某些陣列,您可以使用array_diff_assoc()

+0

請注意'$ item'和'$ item2'或'$ item3'是不同的變量。我不能這樣做。 – fiskolin 2014-09-10 14:01:34