我从数据库中提取最新的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