Я хочу сортировать целую кучу ключей в массиве. Пары ключа имеют большое количество и имя. Он неверно сортирует массивы на небольших числах, и становится еще хуже, когда числа становятся слишком большими, чтобы их хранить в качестве целых чисел. Если целые числа слишком велики, они хранятся как струны в массиве. И эти струны вообще не сортируют, оставаясь в одном месте. < /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 ... e-converte
Как правильно сортировать клавиши массива, которые могут быть настолько большими, что их можно преобразовать в типы стро ⇐ Php
Кемеровские программисты php общаются здесь
1739434048
Anonymous
Я хочу сортировать целую кучу ключей в массиве. Пары ключа имеют большое количество и имя. Он неверно сортирует массивы на небольших числах, и становится еще хуже, когда числа становятся слишком большими, чтобы их хранить в качестве целых чисел. Если целые числа слишком велики, они хранятся как струны в массиве. И эти струны вообще не сортируют, оставаясь в одном месте. < /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.
Подробнее здесь: [url]https://stackoverflow.com/questions/13187768/how-to-correctly-sort-array-keys-which-can-be-so-large-that-they-can-be-converte[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия