[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сортировка массива
VeRTak

krsort($data);
echo json_encode(["data"=>$data]);



<pre>Array
(
[1508201258] => Array
(
[body] => еще тест
[categoryid] =>
)

[1508201081] => Array
(
[body] => test
[categoryid] =>
)

[1508198105] => Array
(
[body] => testing3
[categoryid] =>
[guest_email] =>
[timestamp] => 1508198105
)

[1508196656] => Array
(
[body] => testing2
[categoryid] =>
)

[1508196350] => Array
(
[body] => testing
[categoryid] => 2
)

[1508189135] => Array
(
[body] => test
[categoryid] => 2
)

)
</pre>


На сервер проверяю, все хорошо. Массив сортируется. А на клиента приходит в обратном порядке. Почему так?
VeRTak
Главное в response я вижу отсортированный массив. а console.log показывает в обратном порядке, так же на клиенте перебираю через for и он тоже в обратном порядке. Мистика?
walerus
VeRTak Да навряд ли ... скорее что то упускаешь.
Кидай коды, сервер <=> клиент, будем магию изучать cool.gif
brevis
Или вот так хранить
[
{key: 1508201258, body: "еще тест", categoryid: ""},
{key: 1508201081, body: "test", categoryid: ""},
{key: 1508198105, body: "testing3", categoryid: "", guest_email: "", timestamp: 1508198105},
...
]

Или отдельно держать в массиве order:
 order = [1508201258, 1508201081, 1508198105, ...]
и бежать по нему.


_____________
Чатик в телеге
sergeiss
Цитата (VeRTak @ 17.10.2017 - 19:17)
Главное в response я вижу отсортированный массив. а console.log показывает в обратном порядке, так же на клиенте перебираю через for и он тоже в обратном порядке. Мистика?

Нет, не мистика, а нормальная работа массива в JS. Там всегда, в каком бы ты порядке не вставлял элементы в массив, перебираться они будут в порядке возрастания.


Пример в консоли браузера

> var a = []
<
undefined
> a[5]=10
< 10
> a[4]=3
< 3
> a[7]=33
< 33
> a
< (8) [empty Ч 4, 3, 10, empty Ч 1, 33]
4: 3
5
: 10
7
: 33
length : 8
__proto__: Array(0)

И обрати внимание на длину массива!!!

Так что попробуй сделать так, как советует brevis.
Либо еще можешь попробовать сделать в ПХП некоторые ключи массива не-цифровыми (хотя бы один), тогда в JS будет образован не массив, а объект. Там, скорее всего, ключи будут идти в нужном тебе порядке. Но 100%-ю гарантию никто не даст.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
VeRTak
Всем спасибо, за разъяснение картины, не стал заморачиваться, отсортировал на клиенте.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.