2016-06-13 4 views
-2

У меня возникли трудности с циклом для создания тестового массива (прежде чем использовать аналогичный подход к циклу через набор записей). Этот PHP код не работает: -Создание правильного массива PHP

$dataSet1 = array(); 
$dataSet1['label'] = 'Customer 1'; 

for ($i = 0; $i < 3; ++$i) { 
    $dataSet1['data'] = array($i,$i); 
} 

echo json_encode($dataSet1); 

Он производит только последнее значение для данных, а не 3 пары данных: -

{"label":"Customer 1","data":[2,2]} 

Где я буду неправильно? Я googled, попробовал array_push, но не повезло. Благодарю.

+2

Что вы хотите * окончательный * массив выглядеть? –

+0

change $ i <3 to $ i <= 3 –

+3

Вы переписываете * значение '$ dataSet1 ['data']' с каждой итерацией цикла 'for'. –

ответ

1

Вы продолжаете переписывать значение для $dataSet1['data'] в вашем цикле.

Если вы хотите добавить в массив, вы можете использовать этот синтаксис:

$dataSet1['data'][] = array($i, $i); 

Или, вы можете использовать array_push() функцию:

array_push($dataSet['data'], array($i, $i)); 
+0

Спасибо, абсолютно работает, невероятно, что только «[]» имеет значение. Как вы были вначале, я буду отмечать как ответ. Не удалось получить второе решение, оно дало {"label": "Customer 1", "data": null}, хотя я изменил $ dataset на $ dataset1. – Paul

2

Вы заменяете значение для индекса данных каждый раз, когда вы выполняете цикл.

$dataSet1 = []; 
$dataSet1['label'] = 'Customer 1'; 

for ($i = 0; $i < 3; ++$i) { 
    $dataSet1['data'][] = $i; 
} 

echo json_encode($dataSet1); 
+0

Спасибо, это абсолютно работает. К сожалению, я не могу отметить 2 ответа правильно. Но еще раз спасибо за помощь. – Paul

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