2013-08-05 2 views
0

У меня есть многомерный массив php, который я отправляю в jquery, но мне нужно автоматически создать массив.Создайте массив в jquery из многомерного массива php

Все примеры показывают настройки вручную массив следующим образом:

var theme_name = current_theme_meta.theme_name, 
    theme_version = current_theme_meta.version, 
    data0A  = theme_metadata[0].dataA, 
    data0B  = theme_metadata[0].dataB, 
    data1A  = theme_metadata[1].dataA, 
    data1B  = theme_metadata[1].dataB; 

current_theme_meta и theme_metadata ключи в массиве PHP я построил и я нажимаю на JQuery через wp_localize_script()

(а WordPress функции.)

theme_name, version, dataA и dataB являются ключевыми значениями внутри массива.

Мой массив выглядит следующим образом:

[current_theme_meta] => Array 
    (
     [theme_name] => A Cool Theme 
     [version] => 2.1.1 
    ) 

[theme_meta] => Array 
    (
     [0] => Array 
      (
       [dataA] => foo 
       [dataB] => bar 
      ) 

     [1] => Array 
      (
       [dataA] => this 
       [dataB] => that 
      ) 
    ) 

Как создать массив в JQuery? Я путаюсь между каждым и циклом и т. Д.

ответ

1

Быстрый и простой способ сделать это будет кодирование вашего массива PHP как JSON с использованием json_encode, а затем передать его на ваш JavaScript.

Примером может быть:

<?php 
    //Create & populate your PHP array 
    $my_php_array = array(
     'foo' => 'bar', 
     'test' => array(
       'abc' => '123' 
      ) 
    ); 
?> 

<script type="text/javascript"> 
    var my_javascript_object = JSON.parse("<?php echo json_encode($my_php_array); ?>"); 
</script> 

После этого, вы можете получить доступ к объекту JavaScript, как, например:

<script type="text/javascript"> 
    alert(my_javascript_object.foo); 
    alert(my_javascript_object.test.abc); 
</script> 
+0

Это звучит как самый простой способ ... так что мне в принципе не нужно настраивать массив на стороне jquery, поскольку значение key => будет передано, и я могу вызвать пару ключ/значение. Спасибо, я буду играть с тем, как передать массив как json изнутри wordpress. – Jason

+0

Да, это именно оно. Вы будете делать все строение/манипуляцию с массивами в PHP и передать заполненный массив как строку JSON, которая затем обрабатывается JavaScript в объекте. –

1

json_encode в вашем PHP, а затем разобрать JSON в вашем JQuery:

$json = json_encode($your_array); 

Затем войдите в него и проанализируйте его на своем Javascript:

var yourArray = JSON.parse('<?php echo $json ;?>'); 

JSON похож на XML, отлично подходит для обмена данными между языками, поскольку большинство языков имеют встроенные функции для работы с ним - как вы можете видеть в этом примере.

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