我從數據庫中提取最新的3篇新聞文章,並且需要通過它們從中拉出的順序訪問它們,所以在數組中的第一個位置,第二個位置等等來顯示它們在我的網頁的隨機部分。我碰到訪問數組鍵,但那是行不通的,我哪裏錯了?提前致謝!PHP按位置獲取數組的值
$value = array_slice($blog, 0, 1);
echo $value;
我從數據庫中提取最新的3篇新聞文章,並且需要通過它們從中拉出的順序訪問它們,所以在數組中的第一個位置,第二個位置等等來顯示它們在我的網頁的隨機部分。我碰到訪問數組鍵,但那是行不通的,我哪裏錯了?提前致謝!PHP按位置獲取數組的值
$value = array_slice($blog, 0, 1);
echo $value;
我認爲你正在尋找一個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
數組,使用數組指針功能,如current
,next
,prev
,reset
和end
:
reset($blog);
$article1 = current($blog); // >> foo
$article2 = next($blog); // >> bar
$article3 = next($blog); // >> cat
使用此:
$value = array_shift($blog);
要獲得第二個
$value2 = array_shift($blog);
和第三:
$value3 = array_shift($blog);
,如果你想保留舊的$博客數組未觸及使用'$ value = array_shift(array_values($ blog));' – ulkas 2013-02-26 10:01:10
我不認爲這是行得通的? '$ value'和'$ value2'都是字符串,因此在它們上調用'array_shift'會引發錯誤。 – 2013-02-26 10:03:13
@Wiseguy:謝謝,這是我的不好,我糾正了它。 – 2013-02-26 10:03:27
您有三種不同的方式來實現這一目標:
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;
}
'$ blog [0]','$ blog [1]',...?或者你究竟在問什麼? – deceze 2013-02-26 10:01:04
'echo $ blog [0]; echo $ blog [1]; echo $ blog [2]'應該工作嗎? – dognose 2013-02-26 10:01:32
你應該循環通過陣列..不要切片 – mithunsatheesh 2013-02-26 10:03:11