如何访问二维数组并在其中使用if语句-PHP
我有一个数组,它是MySQLi查询的结果 数组代码为:如何访问二维数组并在其中使用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
while ($row_Active = mysqli_fetch_assoc($SeqActive)) {
$Seq[] = $row_Active;
}
如果我回显数组,它就有正确的内容,所以我知道它是有效的
目标:
我需要循环遍历数组(我想使用foreach),因此如果数组元素的内容包含“1”,则echo 1
elseecho 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,我已经用额外的代码更新了帖子,以准确地显示我正在尝试做什么。