2014-09-28 2 views
0

Так у меня есть эта строка:Массив для яваскрипта строки

[{values: {"US" : "rgba(29, 79, 207, 1)"}},{values: {"NL" : "rgba(29, 79, 207, 1)"}}] Эта строка устанавливает цвета для jvectormap. вся причина этой функции, я покажу только страны, которые посетили.

Это из Javascript, и мне нужно использовать тот же формат, но на PHP, и я думаю, что он имеет какое-то отношение к кодировке json, но я не могу заставить его работать. Поэтому я хочу сделать array в эту строку. Как бы я это сделал?

Когда я делаю массив в PHP и кодирую его в json, это получается: [["NL","black"],["US","blue"]] и этот формат не будет работать, конечно.

+1

'json_decode ($ строка);' –

+2

Это не JSON. –

ответ

1

Вы поставили недействительный JSON. values необходимо указывать, чтобы стать "values", для того чтобы PHP расшифровал его.

<?php 

$string = <<<JSON 
[{"values": {"US" : "rgba(29, 79, 207, 1)"}},{"values": {"NL" : "rgba(29, 79, 207, 1)"}}] 
JSON; 

echo print_r(json_decode($string, true), true); 

https://eval.in/199639

Отличным JSON корректор http://json.parser.online.fr

Вы бы затем создать массив, как;

$array = array (
    0 => 
    array (
    'values' => 
    array (
     'US' => 'rgba(29, 79, 207, 1)', 
    ), 
), 
    1 => 
    array (
    'values' => 
    array (
     'NL' => 'rgba(29, 79, 207, 1)', 
    ), 
), 
); 
echo json_encode($array); 

https://eval.in/199684

+0

Я не хочу, чтобы PHP расшифровывал его, я хочу сгенерировать код javascript в формате, который я опубликовал, используя массив (php). – user2879055

+0

Затем создайте массив, подобный выводу [this] (https://eval.in/199639) –

+0

Да, и это именно то, что мой вопрос. – user2879055

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