2015-09-03 6 views
0

Я видел другие решения в StackOverflow, но мой сценарий немного отличается.Преобразование объекта PHP в массив

У меня есть завод диаграмм в PHP, который принимает массив строк, например:

$charts = ['SomeChart', 'SomeOtherChart', 'AndAnotherChart']; 

, а затем он перебирает массив, возвращает новый класс, если он существует, и затем выполняется метод по умолчанию под названием 'бег'.

foreach($charts as $key => $param) { 
    try { 
     if($chart = ChartsFactory::build($param)) { 
      $result['charts'][$param] = $chart->run(); 
     } 
    } catch (\Exception $e) { 
     $result[$param] = $e->getMessage(); 
    } 
} 

, а затем I return $result;.

В мой взгляд, я хочу передать это result в JavaScript. Так что я делаю это:

var result = <?php echo json_encode($result);?>;

Это все работает отлично, но единственная проблема в том, что JavaScript получает Object вместо с Array, который не то, что я хочу, потому что я хочу, хочу, чтобы запустить Foreach на него и некоторые другие Array связанные вещи.

Как его преобразовать в Array или убедиться, что он принимает Array?

ответ

2

В JavaScript массивы могут содержать только числовые индексы, поэтому PHP выводит ассоциативный массив со строковыми индексами как объект JavaScript, который является ближайшим представлением.

Вы можете, однако, перебрать свойства объекта в JavaScript:

for (var name in myObject) { 
    // value = myObject[name] 
} 
Смежные вопросы