在循环中执行的数组中保存值

时间:2015-11-26 15:14:05

标签: php arrays

while($row = mysql_fetch_assoc($sql1))
$sqldiag=$conn->query("select di_name from assi_diagnosis where di_id IN ($disp1$j)");
$i == "0";
$items = array();   
while($rsdiag=mysql_fetch_array($sqldiag))
{
echo $rsdiag['di_name'].">>";
$items[$i] = $rsdiag['di_name'];
print_r($items);
}
$i++;

朋友我想在处理while循环时在数组中保存值。我的期望是当第一个循环条件被执行时$ item [0]应该包含第二个while循环迭代的所有结果集值  例如:(

$item[0] = {value1,value2,value3};
$item[1] = {value1,value2,value3};
$item[2] = {value1,value2,value3};

$ item [ 0 ]是第一次迭代的值 $ item [0]中的值是第二个while循环的值

3 个答案:

答案 0 :(得分:1)

将$ i ++保持在循环内。

while($rsdiag=mysql_fetch_array($sqldiag))
{
    echo $rsdiag['di_name'].">>";
    $items[$i] = $rsdiag['di_name'];
   $i++;// this line
}
print_r($items);// print here

答案 1 :(得分:0)

$i = 0;
$items = array();
while ($row = mysql_fetch_assoc($sql1)) {
    $items[$i] = array();
    $sqldiag = $conn->query("select di_name from assi_diagnosis where di_id IN ($disp1$j)");
    while($rsdiag=mysql_fetch_array($sqldiag))
    {
        echo $rsdiag['di_name'].">>";
        array_push($items[$i], $rsdiag['di_name']);
        print_r($items);
    }
    $i = $i + 1;
}
print_r($items);

您的代码中存在一些错误。

  • 第一个while循环没有开头或右边括号,
  • 您使用条件运算符$i而不是==将值分配给=
  • 每次运行第二个循环时,它会覆盖$items[$i]值而不是将其作为数组推送,使用array_push,对于要分配的所有$rsdiag值使用if,

答案 2 :(得分:0)

您的代码存在一些小问题,这些问题已在此处修复

<?php
while($row = mysql_fetch_assoc($sql1)) {    
    $sqldiag=$conn->query("select di_name from assi_diagnosis where di_id IN ($disp1$j)");    
    $items = array();
    $i = 0;
    while($rsdiag=mysql_fetch_array($sqldiag))
    {
        echo $rsdiag['di_name'].">>";
        $items[$i] = $rsdiag['di_name'];
        print_r($items);
        $i++;
    }
}

的问题:

$i == "0";

也应该是$i = 0;

while($row = mysql_fetch_assoc($sql1))

缺少{