2013-09-20 2 views
0

Пусть у меня есть массив (динамически генерируемые из моего кода PHP)преобразующей массив в JSON - умник

array (size=4) 
    0 => 
    array (size=1) 
     'Sat' => string '6' (length=1) 
    1 => 
    array (size=1) 
     'Sun' => string '10' (length=2) 

, и я хочу, чтобы получить следующий поместить его внутри переменную JavaScript

 { 
      "x": 'Sat', 
      "y": 6 
     }{ 
      "x": 'Sun', 
      "y": 10 
     } 

Как я могу это достичь?

+2

Вы смотрели его, как 5 секунд на Google? – Kethryweryn

+0

Hows smarty относится к простым данным? – vikingmaster

+0

Вы ищете его для преобразования или достаточно простого json_encode? т. е. я ожидаю, что желаемый выход будет Sat: 6, Sun: 10, а не показаны x и y. –

ответ

1

Поможет ли это?

$myArray = array(
    array( 
     "x" => "Sat", 
     "y" => "6",   
    ), 
    array( 
     "x" => "Sun", 
     "y" => "10",   
    ) 
); 

$json = json_encode($myArray); 

print_r($json); 

Выход: [{ "х": "СБ", "у": "6"}, { "х": "Солнце", "у": "10"}]

+0

ОК, это именно то, что мне нужно;) – user1611830

3

вы могли бы использовать json_encode(), и передать его переменная JavaScript, как:

$json = json_encode($your_array); 

и в ЯШ:

var json_frm_php = <?php echo $json; ?> 
1

Я думаю, что вы хотите поместить в яваскрипта переменную этого

{ 
     "x": 'Sat', 
     "y": 6 
    },{ 
     "x": 'Sun', 
     "y": 10 
    } 

так что вы должны сначала обернуть переменную $jsonArray=json_encode($Array) в коде PHP, а затем

{literal} 
<script> 
    var json = JSON.parse('{/literal}{$campaign->getStatsMembers()}{literal}'),final=[],final=[]; 
for(var key1 in json){ 
    for(var key2 in json[key1]){ 
     var tmp={"x":key2,"y":json[key1][key2]}; 
     final.push(tmp); 
    } 
} 

console.log(final); 
</script> 
{/literal} 

Btw, я использовал jQuery, возможно, существует более удобный способ петли в вашей переменной json!

2

Вы можете использовать 'json_encode' непосредственно в Smarty, или просто назначить json_encode) 'переменную-е изд (...

например

// in your PHP script : 
$myArray = array(
    array("x" => "Sat", "y" => "6",), 
    array("x" => "Sun", "y" => "10",), 
); 
$smarty->assign('jsondata', json_encode($myArray)); 
$smarty->assign('rawdata', $myArray); 
$smarty->display('template.tpl'); 

А потом в шаблоне:

<script> 
var data1 = {$jsondata}; 
var data2 = {$rawdata|@json_encode}; 
.... 
</script> 

Который воздаст как:

<script> 
var data1 = [{"x":"Sat","y":"6"},{"x":"Sun","y":"10"}]; 
var data2 = [{"x":"Sat","y":"6"},{"x":"Sun","y":"10"}]; 
... 
</script> 

Смотрите также: http://www.smarty.net/docsv2/en/language.modifiers.tpl

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