在循环数组,层层剥洋葱的时候
提示,下标0不存在,所以,就像把当前的数组,打印出来。
又不可能使用foreach。所以,在模板中使用php
{php}
$tixing=$vo[0]['type'];
dump($tixing);
{/php}
最终解决方案
首先循环代码是对的,只是,第二个题型中,以为没有题目,所以是空数组,
空数组的内的下标,当然就不存在了。
提醒各位,如果在循环输出数组的时候,出现下标不存在的情况
有两种原因,而不是一种。
1.数组下标确实不存在
2.数组是空数组。
我下标一直存在,还提示我下标不存在,把我气了一个多小时,最后发现,数组是空的,挖槽
如何在html中判断,数组或者其他数据,是否为空
一、判断变量是否为空
1、empty标签用来判断模板变量是否为空值
<empty name="变量名">要输出的内容</empty>
2、如果判断非空值可使用notempty标签,如下所示:
<notempty name="username">username 不为空</notempty>
3、两个标签合并起来可写成:
<empty name="username">username 为空值<else/>username 不为空</empty>
4、使用if方法
<if condition=" $username neq '' ">
为空
<else />
不为空
</if>
二、判断集合数组是否为空
{if condition="empty($list) neq true" /}
集合不为空
{else /}
集合为空
{/if}
### 所有我在foreach中增加一个判断
{foreach name='questions' item="vo" key="k"}
<div class="form-group">
<!--对题型是否有题进行判断-->
{if condition="empty($vo) neq true"}
<h3>题型{$k+1}:{$typeList[$vo[0]['type']]}</h3>
</div>
<!--对行数据,再次进行循环-->
{foreach name='vo' item="timu" key='bm'}
<div class="form-group">
<h5>{$bm+1}.题干:{$timu['title']}<br></h5>
{foreach name='$timu["selectdata"]' item="select"}
{if condition="$timu['type'] eq 2"}
<input type="checkbox" value="{$select['key']}"
{:in_array($select['key'],$timu['answer'])?"checked":""} disabled>
{$select['key']}、{$select['value']}<br>
{else/}
<input type="radio" value="{$select['key']}"
{:in_array($select['key'],$timu['answer'])?"checked":""} disabled>
{$select['key']}、{$select['value']}<br>
{/if}
{/foreach}
</div>
{/foreach}
{else/}
<p style="color:red;font-size:20px">试卷的题型{$k+1},没有导入题目</p>
{/if}
{/foreach}