我将$ data [" results"]数组从我的控制器传递到我的视图,我想回显那些等于1的数组元素的NAME。
例如,如果{$ first == 1,$ second == 0,$ third == 0}我想显示"首先"。
请您检查下面的代码并帮我找出错误。
foreach($results as $row){
$first= $row->first;
$second= $row->second;
$third= $row->third;
if ($first == 1) {$digits['first'] = $first;}
if ($second == 1) {$digits['second'] = $second;}
if ($third == 1) {$digits['third'] = $third;}
print_r($digits); // Displays 'Array ( [first] => 1 )' instead of 'first'
}
更新:
我通过循环生成html表并使用TCPDF显示它们。
以下更新的代码通常会显示' first'如果第一个表是{$ first == 1,$ second == 0,$ third == 0}。
对于第二个表,如果{$ first == 0,$ second == 0,$ third == 1},它应该显示第三个'但它显示了第一个,第三个'因为它将新值添加到前一个而不是替换它。
$digits = array();
foreach($results as $row){
$first= $row->first;
$second= $row->second;
$third= $row->third;
if ($first == 1) { $digits[] = 'first'; }
if ($second == 1) { $digits[] = 'second'; }
if ($third == 1) { $digits[] = 'third'; }
$abc = implode(', ', $digits);
$tbl.=<<<EOD
<table>
<tr>
<td>
$abc
</td>
</tr>
</table>
<br><br>
EOD;
}
答案 0 :(得分:1)
以下代码将循环遍历数组并添加&#39; first&#39;,&#39; second&#39;或者&#39;第三个&#39;到$ digits数组。
这是你想要实现的目标吗?
foreach($results as $row){
$digits = array();
$first= $row->first;
$second= $row->second;
$third= $row->third;
if ($first == 1) { $digits[] = 'first'; }
if ($second == 1) { $digits[] = 'second'; }
if ($third == 1) { $digits[] = 'third'; }
print_r($digits);
// echo implode(', ', $digits);
}
答案 1 :(得分:0)
尝试查看$ digits中的内容..
echo var_dump($digits)
;
答案 2 :(得分:0)
试试这段代码。
$digits = array();
foreach ($results as $row) {
if ($row->first == 1) {
$digits['first'] = 'first';
}
if ($row->second == 1) {
$digits['second'] = 'second';
}
if ($row->third == 1) {
$digits['third'] = 'third';
}
}
print $digits['first'];
答案 3 :(得分:0)
为什么要使用数组$ digits?
不是吗?
$digits = '';
foreach($results as $row){
$first= $row->first;
$second= $row->second;
$third= $row->third;
if ($first == 1) { $digits = 'first'; break; }
if ($second == 1) { $digits = 'second'; break; }
if ($third == 1) { $digits = 'third'; break; }
}
echo $digits;