只按升序获取数组值?

时间:2017-11-20 03:52:52

标签: php arrays

我想从头到尾(升序)每次只得到一个数组值:

$array = array('Text 1', 'Text 2', 'Text 3', 'Text 4');

for ($i = 0; $i < count($array); $i++) {
    do {
      echo $array[$i]; die;
    } while ($array[$i] == $i);
}

上面的代码只是一个小型演示,根本不起作用 我无法将下一个单值存储到变量中。

这个基础非常简单:
$ variable仅存储&#34;文本1和#34;,并且在重新访问PHP文件后,$ variable仅存储&#34;文本2&#34;,然后仅#34;文本3&#34;,然后仅存储&#34;文字4&#34;最后它返回到&#34;文本1&#34;。

3 个答案:

答案 0 :(得分:0)

如果您希望此订单适用于网站的所有用户,则需要在数据库或文件或内存数据库中保存最新的订单。并且每次都获得保存索引的下一个索引。

如果会话中的每个用户保存索引都会发生这种情况,并且每次都显示下一个索引。

请注意,在实现数组计数时,应重置会话或已保存的变量。

答案 1 :(得分:0)

在php中有一个函数。你可以试试这个。

$ array = array('Text 1','Text 2','Text 3','Text 4');

ASORT($阵列);

答案 2 :(得分:0)

我们将使用session。无需使用循环。如果设置了current_index会话并且小于总数组索引,则if else语句。然后打印并递增我们的current_index否则返回0。

<强> CODE

session_start();
$array = array('Text 1', 'Text 2', 'Text 3', 'Text 4');

if(isset($_SESSION['current_index']) && $_SESSION['current_index'] < count($array)){
    echo $array[$_SESSION['current_index']];
    $_SESSION['current_index'] = $_SESSION['current_index'] + 1;
}else{
    echo $array[0];
    $_SESSION['current_index'] = 1;
}