【问题标题】:Outputting each value in array输出数组中的每个值
【发布时间】:2016-04-03 21:51:09
【问题描述】:

我将这个 foreach 循环嵌套在一个 while 循环中:

foreach ($_SESSION['arrayPoints'] as $value) { 
echo $value;
}

这会输出数组中存储的所有值,如下图543216,但由于foreach循环在while循环中,所以会重复543216,直到没有更多行:

我需要 foreach 循环为每一行分别输出数组中的每个值。

例如(使用上图和 543216 的数组值): 我需要输出显示第一行 5,然后第二行 4,第三行 3,第四行 2,依此类推(如下所示)。

Dave Jackson |TEXT BOX| |DROP-DOWN| 5
Bobby Brown |TEXT BOX| |DROP-DOWN| 4
Daniel Grey |TEXT BOX| |DROP-DOWN| 3
Richard Green |TEXT BOX| |DROP-DOWN| 2
David Bolt |TEXT BOX| |DROP-DOWN| 1
Jason Moore |TEXT BOX| |DROP-DOWN| 6

如何做到这一点?

编辑:

print_r($_SESSION['arrayPoints']);

输出:

Array ( [0] => 5 [1] => 4 [2] => 3 [3] => 2 [4] => 1 [5] => 6 )

-While 循环:while ($data = mysqli_fetch_assoc($result)) { 是一个查询获取操作。

-上图中显示的每一行与数组中的每个数字都是按顺序排列的。所以第一行 = 5 ,第二行 = 4 等等。

提前致谢。

【问题讨论】:

  • 它在 what while 循环中?请发布更多周边相关代码。特别是,如果 while 循环是查询获取操作,还请告诉我们$_SESSION['arrayPoints'] 中的值与在 while 循环中获取的值之间的关系。
  • @MichaelBerkowski 我已对问题进行了编辑

标签: php arrays foreach


【解决方案1】:

您当前的代码表示您想要打印从数据库中获取的每个数据的每个数字,这不是您想要的。您希望为每个数据打印一个数字。所以忘记foreach。你需要的是:

echo $_SESSION['arrayPoints'][$i];

其中 $i 是当前获取的行(您需要设置并增加它)。

【讨论】:

  • 这是我已经完成的$i = 0; echo $_SESSION['arrayPoints'][$i]; $i++; 这仅输出存储在数组中的第一个数字。我的语法和逻辑正确吗?
  • 必须在循环前初始化$i,否则每次都会设置为0。
  • 我在初始化 $i 时遇到了问题,上面注释的语法是什么样的?
  • $i = 0; while ($data = mysqli_fetch_assoc($result)) {...
  • 所以我将$i = 0 放在while 循环之外,我echo $_SESSION['arrayPoints'][$i]; 它什么也不输出,我在while 循环$i++ 内增加它,它仍然什么也不输出
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-26
  • 1970-01-01
  • 2011-05-02
  • 1970-01-01
  • 2017-11-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多