0

这个数组是通过$this->load->var($data)一些全局变量传递的。var我需要从为我实例化的关联数组中提取下面的数组。该数组当前如下所示: 请注意下面的多维数组。

 Dump => array(1) {
  [9] => array(1) {
    [0] => object(stdClass)#21 (8) {
      ["day"] => string(2) "09"
      ["eventContent"] => string(14) "slug ok"
      ["eventTitle"] => string(4) "Slug"
      ["id"] => string(1) "4"
      ["user"] => string(3) "CZL"
      ["user_id"] => string(1) "1"
      ["slug"] => string(4) "Slug"
      ["eventDate"] => string(10) "2013-07-09"
    }
  }
}

我需要将其转换为如下所示:注意下面的一维数组。

Dump => array(1) {
  [0] => object(stdClass)#21 (7) {
      ["day"] => string(2) "09"
      ["eventContent"] => string(14) "slug ok"
      ["eventTitle"] => string(4) "Slug"
      ["id"] => string(1) "4"
      ["user"] => string(3) "CZL"
      ["user_id"] => string(1) "1"
      ["slug"] => string(4) "Slug"
      ["eventDate"] => string(10) "2013-07-09"
  }
}

除了将多维转换为单维之外,有没有一种方法可以从多维数组中调用奇异数组?

我在多维数组上使用了 foreach,但它输出不正确。这是我正在使用的。calendars是我传递给它的上面的数组。

foreach ($calendars as $calendar) {
        $url = calendar_link($calendar);
        $string .= '<li>';
        $string .= '<h3>' . anchor($url, e($calendar->eventTitle)) .  ' ›&lt;/h3>';
        $string .= '<p class="pubdate">' . e($calendar->eventDate) . '</p>';
        $string .= '</li>';
    }

function calendar_link($calendar){
return 'calendar/event/' . intval($calendar->id) . '/' . e($calendar->slug);
}
4

1 回答 1

0

如果多维数组看起来真的和你的转储一模一样,那么你应该能够做类似的事情:

$calendar_single = $calendars[9]; // I dont know why you get 9 as array key here?

然后你应该有一个包含一个对象的数组。

如果您想直接到达对象,请尝试以下操作:

$calendar_object = $calendars[9][0];

然后你 foreach 应该工作:

foreach ($calendar_object as $calendar) { ...

不是最好的解决方案,如果您的数组键 (9) 会更改,它将无法工作..

您还可以尝试一个更通用的解决方案,无论数组键索引如何都可以工作:

foreach($multi as $single){
    foreach($single as $object){
        foreach($object 作为 $calendar){
            // 你的代码在这里
            日历链接($日历);// ETC…
        }       
    }
}
于 2013-07-07T20:36:33.960 回答