Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как модернизировать код. (https://javascript.ru/forum/misc/50802-kak-modernizirovat-kod.html)

wadim 12.10.2014 10:59

Как модернизировать код.
 
Всем привет!

есть код:

<?

$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.

Aetae 12.10.2014 11:32

wadim, проблема в том, что первый индекс у тебя в PHP - "1", чтоб json_encode сделал массив, он должен получать на вход массив, соответственно первый индекс должен быть "0".

wadim 12.10.2014 14:06

Цитата:

Сообщение от Aetae (Сообщение 334983)
wadim, проблема в том, что первый индекс у тебя в PHP - "1", чтоб json_encode сделал массив, он должен получать на вход массив, соответственно первый индекс должен быть "0".

первый индекс "0" не приемлем для меня, а json_encode у меня не массив получает на входе? Строку? Подскажите решение. Может тогда на клиенте в массив упаковать то что пришло? Может функция есть? Или через реплаке придется делать?

Aetae 12.10.2014 14:50

Что значит неприемлем?!
Цитата:

а надо ["1","1"]
["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,
)
Нумерация в массивах начинается с нуля.

ruslan_mart 12.10.2014 14:57

for ($i=0; $i<count($DivX2); $i++)
if ($DivX2[$i] == 1) $DivX[] = $DivX2[$i];

Aetae 12.10.2014 14:59

Ruslan_xDD, ну вот, он теперь скажет: "Aetae - козёл, нифига не помог, а Ruslan_xDD - молодец". Только сам при этом так нифига и не поймёт, а потом снова спросит.:(

kostyanet 12.10.2014 16:35

Цитата:

Сообщение от wadim
Может функция есть? Или через реплаке придется делать?

Есть такая реплака: array.shift(); и первый станет нулевым.

Чтобы хотеть массив c индекса 1 надо переписать целиком статью http://en.wikipedia.org/wiki/Zero-based_numbering

Aetae 12.10.2014 17:28

Цитата:

Сообщение от kostyanet (Сообщение 335036)
Чтобы хотеть массив c индекса 1 надо переписать целиком статью http://en.wikipedia.org/wiki/Zero-based_numbering

...или писать на lua.:D


Часовой пояс GMT +3, время: 19:55.