为了账号安全,请及时绑定邮箱和手机立即绑定

Foreach循环,包含大量的vars

Foreach循环,包含大量的vars

PHP
米脂 2021-04-08 16:19:36
我在数据库中有一堆文本,由“ grp”标识,我如何将每个文本绑定到“ example:if($grp->$grp === '1') {---> $text+$grp->$grp <--- = $grp->text}是否可以执行foreach和while循环,将文本绑定到每个“ text1,text2等”?我已经尝试过这种方式foreach ($getgrouptxt as $grp) { $grpnr = $grp->grp;  while ($grpnr < '63') {   $text+$grpnr = $grp->text;}}}所以基本上从数组中获取文本,使用foreach循环遍历每个人我希望它每次击中一个数字直到到达62时,都将文本var($ text“ number”)设置为$ grp-text
查看完整描述

1 回答

?
catspeake

TA贡献1111条经验 获得超0个赞

+用于数字加法

您打算将数字附加到字符串上,但是您使用的是数字加法运算符(+)而不是字符串串联运算符(.)。所以,而不是$text+$grpnr你需要$text.$grpnr


如果要分配一个值,将保留该值的变量位于分配的左侧

如果要存储$text.$grpnr到中$grp->text,则需要反转分配:


$grp->text = $text.$grpnr;

如果要使用动态变量名,请在其周围使用{}

如果$text.$grpnr应该是变量名,并且打算将其存储$grp->text在变量名中,则:


{$text.$grpnr} = $grp->text;

但是,这在PHP 5中将不起作用。


当心比较数字作为字符串

'7'<'63'


是false,因为PHP将进行文本比较,并且字母中的'7'在'6'后面。如果要使用数字比较,$grpnr则将其与63进行比较,如果是文本,则将其转换为数字类型。


建议

根据我对您问题的最佳理解,您需要


foreach ($getgrouptxt as $grp) {

    $grpnr = $grp->grp;

    while (((int)$grpnr) < 63) {

        $grp->text = $text.$grpnr;

    }

}


查看完整回答
反对 回复 2021-04-23
  • 1 回答
  • 0 关注
  • 149 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信