数组循环php

时间:2013-03-22 12:02:42

标签: php arrays

我正在尝试从表中获取数据并将其存储在名为“items”的数组中,然后使用index访问它。我收到错误“Undefined offset:0”。代码有什么问题?

$i=0;

while($row = mysql_fetch_array($sqlquery))
{
    $name = $row['name'];

    $items = array();

    $items[$i] = $name;

    $i= $i +1;
}

echo $items[0];
echo $items[1];

9 个答案:

答案 0 :(得分:5)

在循环之外定义$items,在循环外定义$i = 0并更改为mysql_fetch_assoc然后尝试。

$i = 0;
$items = array();
while($row = mysql_fetch_assoc($sqlquery)) {
    $name = $row['name'];

    $items[$i] = $name;
    $i++;
}
echo $items[0];
echo $items[1];

答案 1 :(得分:4)

您在每次迭代时都在重新创建数组。结果数组(代码中的$items)的初始化应该在循环之外。 E.g:

$items = array();

while($row = mysql_fetch_array($sqlquery, MYSQL_ASSOC))
{

    $name = $row['name'];

    $items[] = $name;
}
echo $items[0];

echo $items[1];

注意: mysql_*函数已弃用,请使用mysqli_*PDO

答案 2 :(得分:2)

每次在循环内部重新声明你的数组是不正确的。

$items = array();
while($row = mysql_fetch_assoc($sqlquery))
{
  $items[] = $name = $row['name'];
}
echo $items[0];
echo $items[1];

注意:Please, don't use mysql_* functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDOMySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial

答案 3 :(得分:0)

  1. 在while循环
  2. 之前添加$i = 0;
  3. 在while循环之前添加$items = array();,在循环

    之前从内部删除它
     $i         = 0;
     $items = array();
     while($row = mysql_fetch_assoc($sqlquery))
    

答案 4 :(得分:0)

使用此

while($row = mysql_fetch_array($sqlquery))

{

$name = $row['name'];

$items = array();

$items[] = $name;




}
if(isset($items[0])){

echo $items[0];
}

if(isset($items[1])){
echo $items[1];
}

无需使用$ i

答案 5 :(得分:0)

$items = array()移出while循环。它被重新定义了多次,$item[0]丢失了。您只获得结果数组中的最后一项。

答案 6 :(得分:0)

你不应该在循环中声明你的变量,如果你只是添加到单维数组,你可以让$ i关闭。

$items = array();

while($row = mysql_fetch_assoc($sqlquery))
{
    $items[] = $row['name'];
}

print_r($items);

答案 7 :(得分:0)

漂亮干净的版本:

while($row = mysql_fetch_array($sqlquery))

{
   $items[] = $row['name'];

}


echo $items[0];
echo $items[1];

答案 8 :(得分:0)

每次循环时都在初始化数组。

这样做:

<?php
$items = array();
while($row = mysql_fetch_array($sqlquery)) {
    $name = $row['name'];
    $items[] = $name;
}
echo $items[0];
echo $items[1];
?>