php从数组中逐个获取值

php从数组中逐个获取值,php,Php,如何获取值每次调用获取数组中的下一个值? 我想运行crone mysitedotcom/getvalue.php。每次运行我都需要从数组中逐个获取值。我不想得到随机或任何洗牌值。。我需要每次刷新获取下一个值 $array = [ 'one' => 11, 'two' => 22, 'three' => 33 ]; $val = i need single value one by order 我想要这样的输出 first out

如何获取值每次调用获取数组中的下一个值? 我想运行crone mysitedotcom/getvalue.php。每次运行我都需要从数组中逐个获取值。我不想得到随机或任何洗牌值。。我需要每次刷新获取下一个值

  $array = [
  'one' =>   11,
  'two'   =>   22,
  'three'   =>   33
   ];
  $val = i need single value one by order
我想要这样的输出

 first output = 11
 after refresh = 22
 after refresh = 33
 after refresh = 11
 after refresh = 22
两种解决方案:

  • 存储一个键变量并每次递增(到达数组长度时不要忘记重置)
  • 创建一个复制数组,从中获取第一个条目,然后将其删除。如果数组为空,请再次复制原始数组
不管是哪一个,你为什么要那样做

编辑:使用这两种解决方案,无论是使用密钥还是数组,都必须将其保存在数据库或会话中。

两种解决方案:

  • 存储一个键变量并每次递增(到达数组长度时不要忘记重置)
  • 创建一个复制数组,从中获取第一个条目,然后将其删除。如果数组为空,请再次复制原始数组
不管是哪一个,你为什么要那样做


编辑:使用这两种解决方案时,无论是使用密钥还是数组,都必须将其保存在数据库或会话中。

以下是一个可用于会话的解决方案:

  session_start();

  if(!isset($_SESSION['key'])){
    $_SESSION['key'] = 'one';
  }

  $a = [
    'one' => 11,
    'two' => 22,
    'three' => 33
  ];

  echo $a[$_SESSION['key']];

  $keys = array_keys($a);
  $_SESSION['key'] = $keys[array_search($_SESSION['key'], $keys) + 1];

以下是一个包含会话的工作解决方案:

  session_start();

  if(!isset($_SESSION['key'])){
    $_SESSION['key'] = 'one';
  }

  $a = [
    'one' => 11,
    'two' => 22,
    'three' => 33
  ];

  echo $a[$_SESSION['key']];

  $keys = array_keys($a);
  $_SESSION['key'] = $keys[array_search($_SESSION['key'], $keys) + 1];


我是否理解正确:您希望在每个页面请求中获得下一个值?这是一个需要回答的大问题,但您可以从研究PHP会话开始。这是跨页面请求保留状态的标准方法。是的,没错。。我从来没有见过这样的问题和答案。。我已经查过了,兄弟。。我知道它的简单代码。。但是我的头脑也不适用于这个简单的代码这里有一个页面让你开始:。这将向您展示如何存储值,然后在每次调用页面时再次检查/更改该值。您可以使用会话存储当前索引号,当页面刷新时,您可以从会话中获取索引并调用具有值的数组进行打印。如果会话值为空,则调用第一个值并在会话中存储下一个索引或值。在下一次刷新时,它将再次检查会话,因为会话中设置了新值,所以您可以使用该值并使用下一个索引更新会话值,依此类推。如何在上一个索引之后重新开始?pls示例代码..我是否正确理解:您希望在每个页面请求中获得下一个值?这是一个需要回答的大问题,但您可以从研究PHP会话开始。这是跨页面请求保留状态的标准方法。是的,没错。。我从来没有见过这样的问题和答案。。我已经查过了,兄弟。。我知道它的简单代码。。但是我的头脑也不适用于这个简单的代码这里有一个页面让你开始:。这将向您展示如何存储值,然后在每次调用页面时再次检查/更改该值。您可以使用会话存储当前索引号,当页面刷新时,您可以从会话中获取索引并调用具有值的数组进行打印。如果会话值为空,则调用第一个值并在会话中存储下一个索引或值。在下一次刷新时,它将再次检查会话,因为会话中设置了新值,所以您可以使用该值并使用下一个索引更新会话值,依此类推。如何在上一个索引之后重新开始?pls示例代码..如何完成所有关键步骤后如何重新开始?这并不能真正回答OP的问题。重要的一点是如何“记住”客户端上次访问页面时收到的值。如果达到计数($array)且带有if条件,请再次将密钥设置为0。也不要忘记count()返回条目数,数组索引从0开始,因此它将是
$key++;if(count($array)how and after finish all key如何重新开始?这并不能真正回答OP的问题。重要的一点是如何“记住”客户端上次访问页面时收到的值。再次将密钥设置为0,直到达到count($array)并带有if条件。也不要忽略该count()返回条目数,数组索引从0开始,因此它将是
$key++;if(count($array)感谢您的代码工作正常..但是我如何使用带有key的数组?它不适用于我的示例数组..请帮助谢谢您的代码工作正常..但是我如何使用带有key的数组?它不适用于我的示例数组..请帮助