在循环执行时将值保存在数组中


saving values in array executing while loop

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 循环的值

Keep $i++ inside loop。

while($rsdiag=mysql_fetch_array($sqldiag))
{
    echo $rsdiag['di_name'].">>";
    $items[$i] = $rsdiag['di_name'];
   $i++;// this line
}
print_r($items);// print here
$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 ,使用 if 对于要分配的所有$rsdiag值,

你的代码有几个小问题,在这里得到了修复

<?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))

缺少{