Создание многомерного массива из 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, время: 17:28. |