如何访问二维数组并在其中使用if语句-PHP

如何访问二维数组并在其中使用if语句-PHP,php,loops,if-statement,foreach,Php,Loops,If Statement,Foreach,我有一个数组,它是MySQLi查询的结果 数组代码为: while ($row_Active = mysqli_fetch_assoc($SeqActive)) { $Seq[] = $row_Active; } 如果我回显数组,它就有正确的内容,所以我知道它是有效的 目标: 我需要循环遍历数组(我想使用foreach),因此如果数组元素的内容包含“1”,则echo 1elseecho 2 如何阅读每个元素的内容以使其工作 $SeqID = array(); foreach($Seq

我有一个数组,它是MySQLi查询的结果

数组代码为:

while ($row_Active = mysqli_fetch_assoc($SeqActive)) {
    $Seq[] = $row_Active;
} 
如果我回显数组,它就有正确的内容,所以我知道它是有效的

目标:

我需要循环遍历数组(我想使用foreach),因此如果数组元素的内容包含“1”,则
echo 1
else
echo 2

如何阅读每个元素的内容以使其工作

$SeqID = array();
foreach($Seq as $key => $value) {
    if($value == 1){
    echo "1";
    } else {
    echo "2";
    }
}
“能干”只是我描述我需要什么的方式

非常感谢您抽出时间


编辑:

我发现SQL查询返回了一个二维数组,如下所示:

查询结果如下:

Array ( [0] => Array ( [Status] => A [SeqID1] => 1 [SeqID2] => 1 [SeqID3] => [SeqID4] => [SeqID5] => [SeqID6] => [SeqID7] => [SeqID8] => [SeqID9] => [SeqID10] => [SeqID11] => [SeqID12] => [SeqID13] => [SeqID14] => [SeqID15] => [SeqID16] => [SeqID17] => [SeqID18] => [SeqID19] => [SeqID20] => [SeqID21] => [SeqID22] => [SeqID23] => [SeqID24] => [SeqID25] => [SeqID26] => [SeqID27] => [SeqID28] => [SeqID29] => [SeqID30] => [SeqID31] => [SeqID32] => [SeqID33] => [SeqID34] => [SeqID35] => [SeqID36] => [SeqID37] => [SeqID38] => [SeqID39] => [SeqID40] => [SeqID41] => [SeqID42] => [SeqID43] => [SeqID44] => [SeqID45] => [SeqID46] => [SeqID47] => ) )
那么我做错了什么

非常感谢所有的回复

我已经把所有关于鲍尔德的评论都记下来了,这已经非常接近工作了

整个代码生成一个问题表,每个问题显示一个按钮,如果问题已被回答,则问题显示一个绿色图像,如果问题未被回答,则显示一个红色按钮

提供的代码非常有效,但当我将其包含在工作脚本中时,问题不会显示出来

关于为什么没有显示这些问题的任何想法

我不想从一开始就把所有的代码都放到帖子里,因为我认为这可能会掩盖问题

整个代码:

<? do { ?>  
    <? $_SESSION['TableID'] = $row_SeqList['TableID'];?>
    <tr>
       <td width="71%" class="tablelist"><?php print $row_SeqHead['SeqHeader']; ?></td>
       <td width="7%" class="tablelist"><?php print $row_SeqHead['TableID']; ?></td>
       <td width="16%" class="openbutton">
        <?php foreach($Seq as $key => $value) {
            foreach ($value as $val) { 
                if ($val == 1){ ?>
                <img src="images/completebutton.png" width="72" height="29">            
                <? } else { ?>
                <a href="table01.php?TableID=<?php echo $row_SeqHead['TableID']; ?>" target="_self"><img src="images/openbutton.png" width="72" height="29"></a>

        <?php }
        }

    }?>
<?php } while ($row_SeqHead = mysqli_fetch_assoc($SeqHead)); ?>

您应该使用两个
foreach
循环来获取元素值。这是你的例子

$SeqID = array();
while ($row_Active = mysqli_fetch_assoc($SeqActive)) {
    $Seq[] = $row_Active;
}

$one = 0;
$two = 0;
foreach($Seq as $key => $data) {
    foreach($data as $key_2 => $value ) {
        if($value == 1){
            $one++;
        } else {
            $two++;
        }
    }
}
echo "Total records with one : ".$one."<br>";
echo "Total records with two : ".$two;
$SeqID=array();
而($row\u Active=mysqli\u fetch\u assoc($SeqActive)){
$Seq[]=$row\u活动;
}
$1=0;
$2=0;
foreach($Seq as$key=>$data){
foreach($key_2=>$value形式的数据){
如果($value==1){
$1++;
}否则{
$2++;
}
}
}
echo“记录总数为1:“.1美元。”
”; echo“共有两条记录:”.$2;
您需要另一个foreach循环,称为嵌套foreach循环

这是我编写和测试的代码,运行良好

$one = $two = 0; // empty variables 
foreach($Seq as $key => $value) {

        foreach ($value as $val) {              
        if ($val == 1) {
            $one++;
        }else {
            $two++;
        }
    }
}
echo "total number of one's ". $one ."<br>";
echo "total number of two's ". $two ."<br>";
$one=$two=0;//空变量
foreach($Seq as$key=>$value){
foreach($val的值){
如果($val==1){
$1++;
}否则{
$2++;
}
}
}
回显“一个人的总数”$一个“
”; 回显“两个的总数”$两个“
”;
能否显示从查询中获取的数据。向循环行中再添加一个foreach-
foreach($Seq作为$row){foreach($row作为$key=>$value){
@nerdlyist,我已经编辑了这个问题,并将数组内容放在postHi@Rafael Shkembi中,$row_活动已填充,请参阅使用数组内容进行后期编辑。感谢您的回复。$SeqID与$Seq不同,因此没有任何内容被重新分配。我是正确的,但您不是。OP的代码中没有此错误,因此请重写第一部分的answer@RafaelShkembi,我已经用额外的代码更新了帖子,以准确地显示我正在尝试做什么。