Я хочу сортировать целую кучу ключей в массиве. Пары ключа имеют большое количество и имя. Он неверно сортирует массивы на небольших числах, и становится еще хуже, когда числа становятся слишком большими, чтобы их хранить в качестве целых чисел. Если целые числа слишком велики, они хранятся как струны в массиве. И эти струны вообще не сортируют, оставаясь в одном месте. < /p>
Все, что я хочу сделать, это сортировать пары клавиш от наибольшего до наименьшего.
Я понятия не имею, как это сделать, так как функции сортировки полностью терпят неудачу.
Я признателю любую помощь, которую я могу получить. < /p>
Вот мой код: < /p>
< /code>
Обновление: < /strong>
Я запускаю больше примеров, чтобы проверить, правильно ли он сортирует все не строковые значения, и оказывается, что это не (где ранее это работало сейчас, он не удается)
У меня есть массив < /p>
array(3) { [0]=> array(1) { [1800000000]=> string(6) "Robert" } [1]=> array(1) { [591000000]=> string(6) "albert" } [2]=> array(1) { [1100000000]=> string(4) "Anna" } }
< /code>
И когда я запускаю krsort () на нем, он возвращает < /p>
array(3) { [2]=> array(1) { [1100000000]=> string(4) "Anna" } [1]=> array(1) { [591000000]=> string(6) "albert" } [0]=> array(1) { [1800000000]=> string(6) "Robert" } }
< /code>
, который не является правильным правильным результатом, -
1800000000,
1100000000,
591000000 < /p>
< Br /> Я пытался преобразовать эти строки в поплавки, но в основном это заставило их выходить как отрицательные числа. Поэтому я попытался перейти на другой путь, преобразовав небольшие INT в струны, но странно то, что они уже были струнами. Кажется, что они преобразуются в INT, когда я формирую пару значений ключей внутри массива. < /p>
Кто -нибудь знает, что происходит? Я использую KRSORT неправильно, проблема все еще потому, что цифры слишком большие? мой массив < /p>
array(1) { [0]=> array(1) { ["4430000000"]=> string(3) "son" } }
< /code>
Обратите внимание на «оценки» вокруг числа, где в предыдущих массивах его нет < /p>
update2: < /strong> < /p>
ОК, так что я знаю, что это не имеет ничего общего с тем, насколько велики целые числа.
i поместил этот код для проверки $ results = substr ($ results, 0, -3); < /code>
Но я все еще получаю неверные результаты < /p>
array(3) { [2]=> array(1) { [1550]=> string(5) "Reeta" } [1]=> array(1) { [1800000]=> string(6) "Robert" } [0]=> array(1) { [1090000]=> string(4) "Anna" } }
< /code>
Я также изменил клавиши и значения и пробудил сортировку с помощью arsort () < /code> с теми же результатами < /p>
Если кто -то может объяснить, почему строки конвертируются в INT, когда они становятся клавишами в массивах, которые также были бы очень оценены. < /p>
Вот руководство KRSORT.
Подробнее здесь: https://stackoverflow.com/questions/131 ... n-each-row
Сортировать ряды двухмерного массива одиночным ключом в каждой строке ⇐ Php
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Сортировать одноэлементные ряды двухмерного массива в нисходящем направлении [дублировать]
Anonymous » » в форуме Php - 0 Ответы
- 23 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Сортировать ряды двухмерного массива по первым столбцам в нисходящем направлении
Anonymous » » в форуме Php - 0 Ответы
- 21 Просмотры
-
Последнее сообщение Anonymous
-