我需要在条件为真时显示一些信息,但问题是条件多次为真。我想做一个array()
,但我不知道怎么做。
我的观点
<?php
$prev_state = '';
for ($i = 0; $i < $cont; $i++) {
$state = $list[$i]['state'];
$name = $list[$i]['name'];
if($prev_state != $state ){
if($state == '3'){
echo 'Header A';
}//state = 3
else {
echo 'Headear B';
}
}// if
$prev_state = $state;
?>
<div>
Name: <?php echo $name; ?>
</div>
<?php
}// for loop
?>
在我的$list
我有很多记录,变量prev_state
总是有变化,
Header A
,我不希望这样。另一方面,我希望标题(A和B)第一次显示条件为真。
示例:
**Header A**
- Marcus (this has state = 3)
- Lia (this has state = 3)
**Header B**
- Robert (this has state = 1)
- Loise (this has state = 3)
- Bob (this has state = 1)
- Fer (this has state = 3)
我希望你能帮助我。
答案 0 :(得分:1)
我认为这是关于你的语法。你的语法就是问题。我使用了你的代码并重新编写了一个新代码,没关系。
<?php
$prev_state = '';
$list = array(
array(
'name' => 'marcus',
'state' => 3
),
array(
'name' => 'lia',
'state' => 3
),
array(
'name' => 'robert',
'state' => 1
),
array(
'name' => 'loise',
'state' => 3
),
array(
'name' => 'bob',
'state' => 1
),
array(
'name' => 'fer',
'state' => 3
)
);
$cont = count($list);
for ($i = 0; $i < $cont; $i++)
{
$state = $list[$i]['state'];
$name = $list[$i]['name'];
if($prev_state != $state )
{
if($state == '3')
{
echo 'Header A';
}
else
{
echo 'Headear B';
}
}
$prev_state = $state;
echo '<div> Name: ' . $name .'</div>';
}
?>
我认为因为你关闭标签就是问题所在。我测试过,结果还可以。
Header A
Name: marcus
Name: lia
Headear B
Name: robert
Header A
Name: loise
Headear B
Name: bob
Header A
Name: fer