Создание многомерного массива из PHP
День добрый.
Мало работал Javascript, помогите с генерацией массива. Задача: сгенерировать многомерный массив из аналогичного массива в PHP. В PHP сделал так: $arResult["AR_ZAPIS_LEVEL"] = array(); foreach($arResult["AR_ZAPIS"] as $item) { $ardate = explode(".", $item["PROPERTY_DATE_VALUE"]); //dump($ardate); $arResult["AR_ZAPIS_LEVEL"][$ardate[2]][$ardate[1]][$ardate[0]][$item["PROPERTY_TIME_ENUM_ID"]] = $item; } Для Javascript не сообразил ничего лучше, чем сделать так: //формируем такой же массив для скрипта ar_allzap_level = new Array(); //ar_allzap_level = new Object(); <? foreach($arResult["AR_ZAPIS"] as $item) { $ardate = explode(".", $item["PROPERTY_DATE_VALUE"]); //dump($ardate); //формируем такой же массив для скрипта ?> if( ar_allzap_level[<?=$ardate[2]?>] == undefined ) { ar_allzap_level[<?=$ardate[2]?>] = new Array(); } if( ar_allzap_level[<?=$ardate[2]?>][<?=$ardate[1]?>] == undefined ) { ar_allzap_level[<?=$ardate[2]?>][<?=$ardate[1]?>] = new Array(); } if( ar_allzap_level[<?=$ardate[2]?>][<?=$ardate[1]?>][<?=$ardate[0]?>] == undefined ) { ar_allzap_level[<?=$ardate[2]?>][<?=$ardate[1]?>][<?=$ardate[0]?>] = new Array(); } ar_allzap_level[<?=$ardate[2]?>][<?=$ardate[1]?>][<?=$ardate[0]?>].push(<?=$item["PROPERTY_TIME_ENUM_ID"]?>); <? } ?> Наверняка есть вменяемый способ в пару строк, а не мой кошмар :) |
Тебе нужно передать массив из php в js?
Или сделать копию массива в js? |
Передать из php в js
|
ivandelov,
<?php $arr = array( 'a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5 ); echo "<script> var a = eval(".json_encode($arr).") </script> "; ?> <script> console.log(a) </script> ![]() На выходе получаете объект js, с которым обращаетесь также, как и в php: alert(a['a']) //1 alert(a['b']) // 2 P.S. сам как-то мучался с этим же) |
eval то зачем?
|
Хм...а хотя нет, все ок. Можно eval не юзать. |
Спасибо!
|
Часовой пояс GMT +3, время: 04:17. |