Tôi phải kiểm tra các mảng lớn để xem chúng có được lấp đầy 100% các giá trị số không. Cách duy nhất đến với tâm trí của tôi là foreach và sau đó là số cho mọi giá trị, nhưng đó là cách nhanh nhất?Cách nhanh nhất để kiểm tra xem tất cả các giá trị trong một mảng có phải là số không?
Trả lời
giả sử mảng của bạn là một chiều và chỉ tạo thành từ số nguyên:
return ctype_digit(implode('',$array));
Đã phải hoàn tác phiếu bầu của tôi, các giá trị 'false' và' NULL', trả về false cho 'is_numeric()' được gọi là chuỗi trống ở đây, thoát 'ctype_digit()'. – BoltClock
@BoltClock: OP đảm bảo mảng là "100% được lấp đầy với các giá trị số" – stillstanding
Tôi nghĩ rằng hoạt động implode là khá tốn kém trong thời gian. – rsk82
Cách nhanh nhất có thể là để chỉ cho rằng họ đang tất cả các chữ số và tiếp tục với hoạt động của bạn. Nếu hoạt động của bạn không hoạt động sau đó, thì bạn biết điều gì đó không phải là một chữ số. Nhưng nếu chúng thực sự là chữ số ... bạn không thể nhanh hơn O (0)!
Nhưng một số giá trị không phải số sẽ trượt qua vì việc đánh số/tự động hóa. Giả định không an toàn. – Umbrella
Tại sao điều này được chấp nhận làm câu trả lời? Nó không kiểm tra bất cứ điều gì ... –
chức năng nhỏ này hoạt động tốt đối với tôi
function IsNumericarr($arr){
if(!is_array($arr)){
return false;
}
else{
foreach($arr as $ar){
if(!is_numeric($ar)){
return false;
exit;
}
}
return true;
}
}
Vòng cần
array_map("is_numeric", array(1,2,"3","hello"))
Array ([0] => 1 [1] => 1 [2] => 1 [3] =>)
if(array_reduce($array, function($c, $v){return $c & (int)is_numeric($v);}, 1))
Câu trả lời này được tự động gắn cờ là chất lượng thấp vì độ dài và nội dung của nó. Một lời giải thích sẽ giúp câu trả lời này trở nên giống như một câu trả lời Stack Overflow. – Popnoodles
Lọc mảng bằng cách sử dụng is_numeric. Nếu kích thước của kết quả giống với bản gốc, thì tất cả các mục đều là số:
$array = array(1, '2', '45');
if (count($array) === count(array_filter($array, 'is_numeric'))) {
// all numeric
}
- 1. PHP: Kiểm tra xem tất cả các giá trị trong một mảng có nhỏ hơn x
- 2. cách nhanh chóng để kiểm tra xem một chuỗi ký tự không phải là số
- 3. Kiểm tra xem tất cả các giá trị trong một mảng có khối không bằng nhau là
- 4. Kiểm tra xem tất cả các giá trị trong mảng có giống nhau không
- 5. Làm cách nào để kiểm tra xem một giá trị có phải là số không?
- 6. Kiểm tra xem một giá trị từ scanf có phải là một số không?
- 7. Cách kiểm tra xem chuỗi có phải là một trong các giá trị đã biết không?
- 8. php kiểm tra xem mảng có chứa tất cả các giá trị mảng từ một mảng khác không
- 9. PHP kiểm tra xem có bất kỳ giá trị mảng nào không phải là chuỗi hoặc số không?
- 10. Kiểm tra xem mảng byte có tất cả trong 0xff
- 11. kiểm tra xem giá trị của một trường text có phải là số nguyên trong javascript
- 12. Ruby - Cách kiểm tra xem chuỗi có chứa tất cả các từ trong một mảng không?
- 13. Cách nhanh nhất để kiểm tra xem một loại có bị blittable không?
- 14. Kiểm tra xem một khóa có phải là phần tử cuối cùng trong một mảng không?
- 15. Kiểm tra tất cả các giá trị mảng cùng một lúc
- 16. Thông số giá trị đa SSRS. Kiểm tra xem "Chọn tất cả" có được chọn
- 17. cách nhanh nhất để phát hiện xem giá trị có thuộc nhóm giá trị trong Javascript
- 18. Cách kiểm tra xem đối tượng có phải là một mảng của một loại nhất định
- 19. TSQL - Trung bình của tất cả các giá trị trong một cột không phải là số
- 20. Làm cách nào để kiểm tra xem liệu giá trị có phải là số nguyên trong MySQL không?
- 21. Kiểm tra xem một chuỗi có phải là số
- 22. Cách nhanh nhất để kiểm tra các chữ số trùng lặp của một số là gì?
- 23. Cách tốt nhất để kiểm tra xem một đối tượng có phải là một mảng hay không trong Javascript?
- 24. Cách kiểm tra xem giá trị mảng sâu có hiện diện không
- 25. Cách nhanh nhất để kiểm tra xem hai số được cho là đồng thời không?
- 26. Kiểm tra xem một giá trị có bằng bất kỳ giá trị nào trong một mảng
- 27. NUnit kiểm tra tất cả các giá trị của một mảng (với sự khoan dung)
- 28. Jquery, kiểm tra xem một giá trị có tồn tại trong mảng hay không
- 29. Làm cách nào để kiểm tra xem tất cả các mục trong một mảng có giống hệt nhau không?
- 30. Numpy: Cách kiểm tra xem mảng có chứa các số nhất định không?
* Mọi giải pháp cho vấn đề này sẽ lặp lại các giá trị mảng. Cho dù bạn cần phải làm điều đó trong mã hoặc một chức năng làm điều đó cho bạn là một câu hỏi khác, nhưng trong cả hai trường hợp có một vòng lặp. Vì vậy, tôi đoán hiệu suất nên được khá nhiều như nhau, bất kể những gì bạn làm. – Joey
Điều gì về việc xác thực giá trị trước khi chúng vào mảng? –
Nó không đơn giản vì các giá trị đi vào và đi từ mảng theo cách ngẫu nhiên và một số có thể là rỗng hoặc sai hoặc "", và sau đó tôi phải thực hiện các phép tính với chúng và kết quả của các phép tính này phải là null nếu một số dữ liệu trong mảng không phải là số. – rsk82