2014-12-29 2 views
0

Моя цель состоит в том, чтобы создать массив ант-мута из значений для цикла.Создание ассоциативного массива

//$from_time value is 6 and $to_time value is 23 

for ($i = $from_time; $i <= $to_time; $i++) { 
     $working_time_array[] = $i; 
    } 
echo json_encode($working_time_array); 

Выход я получаю на успех AJAX, и когда я console.log его, я получаю результат, как, например:

["6",7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23] 

Предпочтительный результат

["6","7","8","9","10"]... etc 

ответ

5

Единственное различие между два результата - один набор результатов содержит целые числа, а другой содержит строки. Если вы хотите, чтобы эти значения быть строками просто бросить их при назначении их в массив:

for ($i = $from_time; $i <= $to_time; $i++) { 
    $working_time_array[] = (string) $i; 
} 

Это действительно не должно быть необходимым, если ваша сторона клиент не ожидает, что только строки.

+0

Да, что была проблема. Я новичок в массивах, поэтому задаю еще вопрос. Теперь это хорошо, но можно ли удалить те значения, которые одинаковы в другом массиве. Как и в этом примере, результат $ work_time_array [] - ["6", "7", "8", "9"]. Например, мой другой результат $ array [] - ["6", "7"]. Как удалить значения, которые находятся в $ array из моего $ working_time_array []? – WilsonG

+0

Используйте array_unique(), чтобы выполнить это –

0

Вам нужно будет наложить $ i на строку, прежде чем нажимать ее на массив.

for ($i = $from_time; $i <= $to_time; $i++) { 
     $working_time_array[] = (string)$i; 
} 
0

Почему бы вам не преобразовать int в строку?

для вашей цели это должно работать

for ($i = $from_time; $i <= $to_time; $i++) { 
    $working_time_array[] = "$i"; 
} 
echo json_encode($working_time_array); 
Смежные вопросы