Php 在foreach()末尾更改其值的变量
我试图将数据库中的一些信息转换成HTML,以显示给我的用户。我想在每次“行业”改变时打印新标签。我试图使用一个名为$last_industry的变量来跟踪我当前迭代的行业是否等于上一个行业,但是我没有得到好的结果。我已将代码粘贴到下面$c['user\u industries\u title']是我需要监控的内容Php 在foreach()末尾更改其值的变量,php,Php,我试图将数据库中的一些信息转换成HTML,以显示给我的用户。我想在每次“行业”改变时打印新标签。我试图使用一个名为$last_industry的变量来跟踪我当前迭代的行业是否等于上一个行业,但是我没有得到好的结果。我已将代码粘贴到下面$c['user\u industries\u title']是我需要监控的内容 $last_industry = 'foo'; foreach($case_studies as &$c) { //If the last industry we ite
$last_industry = 'foo';
foreach($case_studies as &$c) {
//If the last industry we iterated over is different than the one we're currently iterating over, close the last section and print a new section.
if($last_industry != $c['user_industries_title']){
echo "</section>"
echo "<section>";
$changed = 1;
}else {$changed = 0}
$c = $last_industry;
$last_industry = $c['user_industries_title'];
}
$last_industry='foo';
foreach($c)案例研究{
//如果我们迭代的最后一个行业与我们当前迭代的行业不同,请关闭最后一个部分并打印一个新部分。
如果($last_industry!=$c['user_industries_title')){
回声“”
回声“;
$changed=1;
}else{$changed=0}
$c=$last_行业;
$last_industry=$c['user_industries_title'];
}
此问题与$last_行业变量有关。要使其正常工作,它需要将自身更新为最新的$c['user\u industries\u title'],以便在下一次迭代开始时使用,但这不会发生。我遗漏了什么吗?当值发生更改时,您需要更改if()中的$last\u行业值,否则您总是使用相同的行业值运行:
$last_industry = null;
foreach ($case_studies as $c) {
if ($last_industry != $c['user_industries_title']) {
echo '</section><section>';
$last_industry = $c['user_industries_title'];
$changed = 1;
} else {
$changed = 0;
}
}
$last\u industry=null;
foreach(案例研究为$c){
如果($last_industry!=$c['user_industries_title')){
回声';
$last_industry=$c['user_industries_title'];
$changed=1;
}否则{
$changed=0;
}
}
另外,要注意将$c作为引用(
&
操作符)的陷阱-在脚本期间,它仍然是一个引用,如果您依赖它在循环退出后保持其值,则可能会产生奇怪的副作用。当值发生更改时,您需要在if()中更改$last_行业值,否则,您总是以相同的行业价值运行:
$last_industry = null;
foreach ($case_studies as $c) {
if ($last_industry != $c['user_industries_title']) {
echo '</section><section>';
$last_industry = $c['user_industries_title'];
$changed = 1;
} else {
$changed = 0;
}
}
$last\u industry=null;
foreach(案例研究为$c){
如果($last_industry!=$c['user_industries_title')){
回声';
$last_industry=$c['user_industries_title'];
$changed=1;
}否则{
$changed=0;
}
}
另外,要注意将$c作为引用(
&
操作符)的陷阱-在脚本期间,它仍然是一个引用,如果您依赖它在循环退出后保持其值,则可能会产生奇怪的副作用。看一下最后两行,您可以覆盖$c
,它是一个数组,其中包含上次迭代中使用的字符串$last\u industry
。
重命名最后第二行中的$c
,或将其完全删除
顺便说一句:如果您将PHP错误报告设置设置为E_,您将收到所有通知,
$c
不再是数组 看看最后两行,您覆盖了$c
,这是一个数组,其中包含上次迭代中使用的字符串$last\u industry
。
重命名最后第二行中的$c
,或将其完全删除
顺便说一句:如果您将PHP错误报告设置设置为E_,您将收到所有通知,
$c
不再是数组 您正在覆盖倒数第二行中的$c
。您正在覆盖倒数第二行中的$c
。谢谢您提供的信息。这也是相关的。谢谢你的信息。这也是相关的。