2014-06-11 2 views
-1

меня есть некоторая путаница о том, почему следующий код не работает:PHP JSON многомерные массивы

$data_set = array(); 
for($i=1; $i<=3; $i++) 
{ 
    $data_val = array($i, $i*2); 
    $data_set[] = $data_val; 
} 

echo json_encode($data_set); 

Что я ожидаю что-то вроде

[ [1,2], [2,4], [3,6] ] 

Что я получаю это пустая строка.

Но, если я делаю это

$data_set = array(); 
for($i=1; $i<=3; $i++) 
{ 
    $data_val = array($i, $i*2); 
    $data_set[] = json_encode($data_val); 
} 

echo json_encode($data_set); 

я получаю что-то вроде этого:

[ "[1,2]", "[2,4]", "[3,6]" ] 

Так, кажется, что более глубокие Массивы не работают. Что мне не хватает?

+5

Я попытался запустить свой первый пример, и он дал мне ожидаемый результат. то есть '[[1,2], [2,4], [3,6]]' – Drumbeg

+2

Можете ли вы сделать var_dump ($ data_set); 'вместо этого? Ваш код работает: http://3v4l.org/AiL2U – Halcyon

+0

Прекрасно работает для меня. – VikingBlooded

ответ

0

Там нет причин, чтобы преобразовать элементы массива, а затем преобразовать весь

$data_set = array(); 
for($i=1; $i<=3; $i++) 
{ 
    $data_set[] = array($i, $i*2); 
} 

echo json_encode($data_set); 
Смежные вопросы