首页 > 解决方案 > 多维数组 - 非法字符串偏移

问题描述

我有一个数组,由于某种原因,它不断地返回一个错误“非法字符串偏移”我尝试了几种方法来循环它,但似乎没有一个有效。

$fields = Array (
[cookies] => Array (
    [timeout] => 0
    [votes_per_cookie] => 1
    [enabled] => on
    )
[ip] => Array (
    [timeout] => 0
    [filter] => 
    )
[direct] =>  Array ( )
[membership] => Array (
    [type] => Array ( )
    [once] =>  Array ( )
    )
[captcha] =>  Array ( )
[quota] => Array (
    [votes] => 1000
    )
[date] => Array (
    [start] => 1553846400
    [end] => 1554767940
    [enabled] => on
    )
[selection] => Array (
    [minimum] => 1
    [maximum] => 1
    )
[unique_id] => 1547834405
[results] => Array (
    [require_vote] => Array (
        [enabled] => on
        )
    )
);

我正在尝试获取数组end中的值。date我试过这个:

foreach($fields as $field) {
  echo $field['end'];
}

这会输出数据,但也会输出非法偏移错误。

我试过这个:

foreach($fields as $key => $value) {
  echo $value['end'];
}

这也输出相同的响应。

如果我key使用上述循环回显,它会返回适当的键(cookies、ip、direct、membership 等)

我也试过:

foreach($fields['date'] as $field) {
    $field['end'];
  }

这只是一个错误。

最后

foreach($fields as $field) {
  $field['date']['end'];
}

只是一个错误。

标签: phparraysmultidimensional-array

解决方案


您不需要迭代,只需直接访问字段:

echo $fields['date']['end'];

推荐阅读