12.10.2014, 10:59
|
Профессор
|
|
Регистрация: 20.01.2014
Сообщений: 150
|
|
Как модернизировать код.
Всем привет!
есть код:
<?
$DivX2[0]=0;
$DivX2[1]=1;
$DivX2[2]=1;
for ($i=0; $i<count($DivX2); $i++)
if ($DivX2[$i]==1) $DivX[$i]=$DivX2[$i];
echo json_encode($DivX);
?>
на клиенте получаем: {"1":1,"2":1}
а надо ["1","1"]
{"1":1,"2":1} - это строка, скажите?
код должен быть максимально похож на мой, обязательно вывод через json_encode, эти строки тоже сохраняем:
for ($i=0; $i<count($DivX2); $i++)
if ($DivX2[$i]==1) $DivX[$i]=$DivX2[$i];
на выходе мне нужен массив обязательно в квадратных скобках, без видимых ключей, только значения: 1 и 1.
|
|
12.10.2014, 11:32
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,584
|
|
wadim, проблема в том, что первый индекс у тебя в PHP - "1", чтоб json_encode сделал массив, он должен получать на вход массив, соответственно первый индекс должен быть "0".
__________________
29375, 35
|
|
12.10.2014, 14:06
|
Профессор
|
|
Регистрация: 20.01.2014
Сообщений: 150
|
|
Сообщение от Aetae
|
wadim, проблема в том, что первый индекс у тебя в PHP - "1", чтоб json_encode сделал массив, он должен получать на вход массив, соответственно первый индекс должен быть "0".
|
первый индекс "0" не приемлем для меня, а json_encode у меня не массив получает на входе? Строку? Подскажите решение. Может тогда на клиенте в массив упаковать то что пришло? Может функция есть? Или через реплаке придется делать?
|
|
12.10.2014, 14:50
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,584
|
|
Что значит неприемлем?! ["1","1"] - это(опуская детали) то же самое что {"0": "1", "1": "1"}.
$DivX у тебя в php это:
array(
1 => 1,
2 => 1,
)
соответственно на выходе из json_encode($DivX) получаем {"1":1,"2":1}.
Если хочешь получить на выходе [1, 1] то и на вход подавть ты должен
array(
0 => 1,
1 => 1,
)
Нумерация в массивах начинается с нуля.
__________________
29375, 35
Последний раз редактировалось Aetae, 12.10.2014 в 14:56.
|
|
12.10.2014, 14:57
|
|
Профессор
|
|
Регистрация: 30.04.2012
Сообщений: 3,018
|
|
for ($i=0; $i<count($DivX2); $i++)
if ($DivX2[$i] == 1) $DivX[] = $DivX2[$i];
|
|
12.10.2014, 14:59
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,584
|
|
Ruslan_xDD, ну вот, он теперь скажет: " Aetae - козёл, нифига не помог, а Ruslan_xDD - молодец". Только сам при этом так нифига и не поймёт, а потом снова спросит.
__________________
29375, 35
|
|
12.10.2014, 16:35
|
Профессор
|
|
Регистрация: 23.10.2010
Сообщений: 2,718
|
|
Сообщение от wadim
|
Может функция есть? Или через реплаке придется делать?
|
Есть такая реплака: array.shift(); и первый станет нулевым.
Чтобы хотеть массив c индекса 1 надо переписать целиком статью http://en.wikipedia.org/wiki/Zero-based_numbering
|
|
12.10.2014, 17:28
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,584
|
|
...или писать на lua.
__________________
29375, 35
|
|
|
|