2013-02-26 98 views
0

我從數據庫中提取最新的3篇新聞文章,並且需要通過它們從中拉出的順序訪問它們,所以在數組中的第一個位置,第二個位置等等來顯示它們在我的網頁的隨機部分。我碰到訪問數組鍵,但那是行不通的,我哪裏錯了?提前致謝!PHP按位置獲取數組的值

$value = array_slice($blog, 0, 1); 
echo $value; 
+2

'$ blog [0]','$ blog [1]',...?或者你究竟在問什麼? – deceze 2013-02-26 10:01:04

+0

'echo $ blog [0]; echo $ blog [1]; echo $ blog [2]'應該工作嗎? – dognose 2013-02-26 10:01:32

+0

你應該循環通過陣列..不要切片 – mithunsatheesh 2013-02-26 10:03:11

回答

1

我認爲你正在尋找一個foreach循環或類似的東西:

$blog = array('foo', 'bar', 'cat'); 
foreach ($blog as $article) { 
    echo $article; 
} 
/** 
* Gives you: 
* 
     foo 
     bar 
     cat 
*/ 

但是如果你想用的功能,做到這一點喲你可以使用array_shift。這從一個數組中刪除第一個元素,並返回:

$article1 = array_shift($blog); // $blog is now `array('bar', 'cat')` 
echo $article1; // >> foo 

$article2 = array_shift($blog); // $blog is now `array('cat')` 
echo $article2; // >> bar 

$article3 = array_shift($blog); // $blog is now `array()` 
echo $article2; // >> cat 

或者,如果你想保持原來的$blog數組,使用數組指針功能,如currentnextprevresetend

reset($blog); 
$article1 = current($blog); // >> foo 
$article2 = next($blog); // >> bar 
$article3 = next($blog); // >> cat 
1

使用此:

$value = array_shift($blog); 

要獲得第二個

$value2 = array_shift($blog); 

和第三:

$value3 = array_shift($blog); 
+0

,如果你想保留舊的$博客數組未觸及使用'$ value = array_shift(array_values($ blog));' – ulkas 2013-02-26 10:01:10

+0

我不認爲這是行得通的? '$ value'和'$ value2'都是字符串,因此在它們上調用'array_shift'會引發錯誤。 – 2013-02-26 10:03:13

+0

@Wiseguy:謝謝,這是我的不好,我糾正了它。 – 2013-02-26 10:03:27

1

您有三種不同的方式來實現這一目標:

1.每次要獲取下一個值時調用array_shift($ blog)。

$value = array_shift($blog); 

每次做array_shift將返回數組中的下一個條目的時間。

函數array_pop類似,但每次都返回數組中的最後一個條目。

$value = $blog[0] 

這給所述陣列中的第二個條目:

2.使用索引

這給出陣列中的第一個條目只需訪問該陣列的每個條目

$value = $blog[1] 

這給出了陣列中的第n個值:

$value = $blog[n-1]; 

3.或者最後你可以簡單地遍歷數組和回聲出每個條目(可能不適合,如果你不想順序呼應了在同一個地方的條目)

foreach ($blog as $blog_entry) { 
    echo $blog_entry; 
}