2014-06-01 3 views
-1

Кажется, что у меня есть некоторые проблемы, проходящие через массив данных, которые он работает в одном направлении, но не так, как я этого хочу.Контур forach работает в одном направлении, но не в другом

Я должен указать, что массив характеризуется двумя переменными и $_UNIQUECONSTANT['departments']. Любая помощь, получающая постоянную работу, будет отличной.

Массив

Array (
    [departments] => Array (
     [0] => Array (
      [id] => 2 
      [name] => Support 
      [description] => Support Department 
     ) 
     [1] => Array (
      [id] => 3 
      [name] => Accounting 
      [description] => Accounting Department 
     ) 
    ) 
) 

Рабочая функция.

foreach($departments as $department){ 
    $department['id']; 
} 

Функция должна работать.

foreach($_UNIQUECONSTANT['departments'] as $department){ 
    $department['id']; 
} 
+2

Что вы пытаетесь сделать? Что такое $ _UNIQUECONSTANT? – Dan

+0

$ _UNIQUECONSTANT - это массив, в котором все системные переменные хранятся до выхода скрипта. Он инициируется define ('_ UNIQUECSTSTANT', serialize (array())); –

+0

де-сериализуете массив? Поскольку вы не можете перебирать сериализованный массив, это всего лишь строка. –

ответ

1

Вот 2 методы, которые должны работать:

Примечание: я не проверял их

define('_UNIQUECONSTANT', serialize(array())); 

$d = unserialize(_UNIQUECONSTANT); 

foreach($d["departments"] as $department){ 
    $department['id']; 
} 

// Newer PHP versions 
foreach(unserialize(_UNIQUECONSTANT)["departments"] as $department){ 
    $department['id']; 
} 
+0

Хотя нижняя версия, похоже, бросает ошибки, я смог получить верхнюю часть для работы. –

+1

Я считаю, что дно работает только в 5.4+ –

+0

Я только что проверил и все работает. –

Смежные вопросы