数组内的变量不起作用?

时间:2014-02-20 22:11:25

标签: php loops

我试图在循环内创建的数组之外检索一些信息。

如果我对数组位置进行硬编码,就会按预期打印出来。如果我在循环内部添加变量来打印每个数组,我什么也得不到。

$num = 0;
  foreach ( $repeatable_fields as $field ) {
    $num++;
    $field_playback_format = $field['playback_format'];
    print_r($field_playback_format[$num]);
  }

什么都不打印。但是如果我用一个值替换$ num,比如说1,那么事情会回显到屏幕上。

但如果我这样做:

$num = 0;
  foreach ( $repeatable_fields as $field ) {
    $num++;
    $field_playback_format = $field['playback_format'];
    print_r($field_playback_format[1]);
  }

这可以按预期工作并打印出我需要的东西。我需要在循环中执行此操作的原因是因为我构造了多个数组$field_playback_format[1]$field_playback_format[2]包含不同的值,但我需要在循环内检索它们。

我无法在此位置使用变量吗?

1 个答案:

答案 0 :(得分:0)

数组从0开始,你的脚本立即递增索引并且你有一个错误,因为最后一个循环试图得到一个不存在的数组元素,因为索引是+1而不是实际值。
试试这个:

$num = 0;
  foreach ( $repeatable_fields as $field ) {
    $field_playback_format = $field['playback_format'];
    print_r($field_playback_format[$num]);
    $num++;
  }

您的第二个脚本有效,因为您打印现有元素。但是,如果您尝试使用主索引进行打印检索错误,则无法看到print_r