【问题标题】:For loop with array not working for me带有数组的循环对我不起作用
【发布时间】:2017-07-19 23:35:30
【问题描述】:

这里是一个简单的问题。为什么会报错?

  for ($k = 1; $k < 17; $k++){

 echo $result[0]->answer_."$k";

}

编辑:$result 的内容:

数组 ( [0] => stdClass 对象 ( [entry_id] => 37 [answer_1] => 20-24 岁 [answer_2] => 否 [answer_3] => 是 [answer_4] => 否 [answer_5] => 236.7 [answer_6] => 理想血压 - 上位在 91 和 120 之间,下位在 61 和 80 之间 [answer_7] => 不,我没有检查过 [answer_8] => 不,我戒烟超过 10几年前 [answer_9] => 我有时每周有 150 分钟或更长时间 [answer_10] => 每天 2-5 小时 [answer_11] => 每天 [answer_12] => 很少或从不 [answer_13] => 每天[answer_14] => 每周 3-4 天 [answer_15] => 从不 [answer_16] => 英制 ) )

【问题讨论】:

  • 你遇到了什么错误?
  • 您在这里没有给我们足够的信息来回答您的问题,没有水晶球。 $results的当前内容是什么?你遇到了什么错误?

标签: php arrays loops for-loop


【解决方案1】:

试试

for ($k = 1; $k < 17; $k++){

    echo $result[0]->{'answer_'.$k};

}

根据下面 mpen 的评论更新

【讨论】:

  • 不一样。 -&gt; 引用一个对象属性,[] 是一个数组索引。不可能知道 op 想要什么。据我们所知,他有一个对象数组,有一个名为answer_ 的属性,他想将$k 类型转换为一个字符串。
  • 是的,我想也许他们有一堆带有递增数字的成员变量,他们正试图将它们打印出来?在 JS 中,您可以使用对象文字来做到这一点,我只是不记得您是否可以使用 PHP。我猜不是!
  • 不。它们是 PHP 中的独立概念。我认为 PHP 中的语法是$result[0]-&gt;{'answer_'.$k}
  • 那行得通。奇怪的是我不得不把它放在大括号里。谢谢。只是让我不必编写一个大的 switch 语句。
  • 这并不奇怪。您正在动态更改变量名称。在这里查看php.net/manual/en/language.variables.variable.php
猜你喜欢
  • 2017-06-08
  • 1970-01-01
  • 1970-01-01
  • 2017-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多