Скажите, что у меня есть один размерный массив из 500 000 ячеек, и я хочу знать, является ли этот массив числовым, наиболее очевидными параметрами являются либо итерация по всему массиву, и использование is_numeric() функции или использовать array_shift. Проблема в том, что обе эти опции - O (n) (исправьте меня, если я ошибаюсь) и будут более дорогими по мере роста данных в массиве. Я думаю о другом, но я не уверен в его O, который заключается в поиске всех не числовых значений в массиве с использованием regex и array_search. Как вы думаете, и есть ли менее дорогие варианты?Лучший способ проверить, является ли массив числовым
ответ
Будет ли беспорядок эффективным? Если у вас простой массив, я бы объединил все элементы вместе в строку и выполнил ее против is_numeric. По крайней мере, вам нужно будет только один раз выполнить цифровую проверку.
$foo = array(1, 2, 3, 4, 5, 6, ....);
$bar = implode('', $foo);
var_dump(is_numeric($bar));
Я думаю, что is_numeric позволяет такие вещи, как hex и десятичные знаки и экспоненциальные обозначения. Таким образом, OP может иметь исходную точку данных, которая является шестнадцатеричной, но когда она вставляется в другие вещи, кажется, больше не является числовой. –
@MeganSquire, что имеет смысл. Полагаю, это зависит от данных, с которыми работает OP. – georaldc
- 1. Лучший способ проверить, является ли массив символов пустым
- 2. Лучший способ проверить, является ли SYS_REFCURSOR пустым
- 3. Sybase проверить, является ли значение числовым
- 4. лучший способ проверить пустой массив?
- 5. Лучший способ избежать «не является числовым в числовом экваторе (==)» - предупреждение
- 6. Лучший способ проверить, является ли параметр метода является массив или диапазон
- 7. Лучший способ проверить, если тип является коллекция
- 8. ExtJs - лучший способ проверить, нет ли Ext.Array?
- 9. проверить, является ли значение числовым в представлении sql
- 10. Как проверить, является ли конкретная строка числовым значением символьного значения?
- 11. Лучший способ проверить, является ли переменная функцией в javascript
- 12. Лучший способ проверить, не является ли список нулевым?
- 13. Лучший способ в lxml проверить, является ли элемент корнем
- 14. Лучший способ проверить, является ли соединение TCP активным
- 15. Лучший способ проверить, является ли mysql datetime значением null
- 16. Лучший способ проверить, является ли переменная ipv4 или ipv6
- 17. Лучший способ проверить, является ли значение целым числом?
- 18. Лучший способ проверить, является ли сегодня первое число месяца
- 19. Лучший способ проверить, является ли объект экземпляром класса в Java
- 20. Лучший способ проверить, является ли ответ JSON пустым или null
- 21. Лучший способ проверить, является ли переменная целым числом
- 22. Лучший способ проверить, является ли URL-адрес видеофайла в PHP?
- 23. Каков лучший способ проверить, является ли ввод строкой?
- 24. Лучший способ проверить, является ли общий тип строкой? (C#)
- 25. Лучший способ проверить, является ли TextBox пустым или нет
- 26. Как проверить, является ли объект R именованным числовым вектором?
- 27. Лучший способ проверить, если массив ключей существует
- 28. проверить, является ли массив многомерным
- 29. Как проверить, является ли массив массив массивным?
- 30. Как проверить, является ли ввод формы числовым в PHP?
Сложность - это O (n) на самом деле. И вы не сможете снизить его, если не будете контролировать способ заполнения этого массива (чтобы вы могли проверять элементы, когда они должны быть добавлены). – raina77ow
Знаете ли вы, что массив будет иметь нечисловые значения? – Tim
@ Тит нет, я этого не делаю. –