Foreach循环,包含大量var

时间:2019-04-15 09:11:22

标签: php

我在数据库中有一堆文本,由“ 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循环遍历每个人

我希望它将文本var($ text“ number”)设置为 $ grp-text,每次击中一个数字直到达到62

1 个答案:

答案 0 :(得分:2)

+用于数字加法

您打算将数字附加到字符串上,但是您使用的是数字加法运算符(+)而不是字符串串联运算符(.)。因此,您需要$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'后面。如果要使用数字比较,请与63进行比较,并将$grpnr转换为文本类型的数字类型。

建议

根据我对您问题的理解,您需要类似

foreach ($getgrouptxt as $grp) {
    $grpnr = $grp->grp;
    while (((int)$grpnr) < 63) {
        $grp->text = $text.$grpnr;
    }
}