Vì vậy, tôi đã tò mò về hiệu suất của một số phương pháp được đề cập trong câu trả lời cho số lượng lớn số nguyên.
Sự chuẩn bị
Chỉ cần tạo một mảng gồm 1 triệu số nguyên ngẫu nhiên trong khoảng từ 0 đến 100. Hơn, tôi đã nổ tung chúng để có được chuỗi.
$integers = array[];
for [$i = 0; $i < 1000000; $i++] {
$integers[] = rand[0, 100];
}
$long_string = implode[',', $integers];
Phương pháp 1
Đây là một lớp lót từ câu trả lời của Mark:
$integerIDs = array_map['intval', explode[',', $long_string]];
Phương pháp 2
Đây là cách tiếp cận JSON:
$integerIDs = json_decode['[' . $long_string . ']', true];
Phương pháp 3
Tôi đã đưa ra điều này như là sửa đổi câu trả lời của Mark. Điều này vẫn đang sử dụng chức năng explode[]
, nhưng thay vì gọi array_map[]
, tôi đang sử dụng vòng lặp foreach
thông thường để thực hiện công việc để tránh chi phí array_map[]
có thể có. Tôi cũng đang phân tích cú pháp với [int]
vs
$integerIDs = array_map['intval', explode[',', $long_string]];
0, nhưng tôi đã thử cả hai, và không có nhiều sự khác biệt về hiệu suất. $result_array = array[];
$strings_array = explode[',', $long_string];
foreach [$strings_array as $each_number] {
$result_array[] = [int] $each_number;
}
Kết quả
Method 1 Method 2 Method 3
0.4804770947 0.3608930111 0.3387751579
0.4748001099 0.363986969 0.3762528896
0.4625790119 0.3645150661 0.3335959911
0.5065748692 0.3570590019 0.3365750313
0.4803431034 0.4135499001 0.3330330849
0.4510772228 0.4421861172 0.341176033
0.503674984 0.3612480164 0.3561749458
0.5598649979 0.352314949 0.3766179085
0.4573421478 0.3527538776 0.3473439217
0.4863037268 0.3742785454 0.3488383293
Điểm mấu chốt là trung bình. Có vẻ như phương pháp đầu tiên chậm hơn một chút đối với 1 triệu số nguyên, nhưng tôi không nhận thấy mức tăng hiệu suất 3 lần của phương pháp 2 như đã nêu trong câu trả lời. Hóa ra vòng lặp foreach
là cái nhanh nhất trong trường hợp của tôi. Tôi đã thực hiện điểm chuẩn với XDebug.
EDIT: Đã được một thời gian kể từ khi câu trả lời ban đầu được đăng. Để làm rõ, điểm chuẩn đã được thực hiện trong Php 5.6.40.
Mkamerma tại Science Dot Uva Dot NL ¶
Yves ¶ — Get the integer value of a variable
Taylorsarrafian tại Gmail Dot Com ¶
7 năm trước[mixed
2, int $integerIDs = array_map['intval', explode[',', $long_string]];
3 =
10]: int$integerIDs = array_map['intval', explode[',', $long_string]];
Simon tại NPKK Dot cz ¶
Làm thế nào để chuyển đổi mảng chuỗi thành số nguyên trong PHP?Hàm number_format [] được sử dụng để chuyển đổi chuỗi thành một số.
Làm thế nào để bạn chuyển đổi một loạt các chuỗi thành số nguyên?Nhập Java. sử dụng. Mảng; ....
Ghi chú::
// Chương trình chuyển đổi mảng nguyên nguyên thủy thành mảng chuỗi trong java. công khai void void chính [chuỗi [] args] {.
- int [] intarray = {1, 2, 3, 4, 5}; Chuỗi str = mảng. toString [intarray] // [1, 2, 3, 4, 5].
- . thay thế ["\\ s+", ""]; // [1,2,3,4,5] ....
- Hệ thống. ngoài..
INTVAL PHP là gì?
Hàm intval [] là một hàm sẵn có trong PHP trả về giá trị số nguyên của một biến. Cú pháp: int intval [$ var, $ base]
Giá trị tối đa phụ thuộc vào hệ thống. Các hệ thống 32 bit có phạm vi số nguyên có chữ ký tối đa là -2147483648 đến 2147483647. Vì vậy, ví dụ như trên một hệ thống như vậy,
$integerIDs = array_map['intval', explode[',', $long_string]];
9 sẽ trả về 2147483647. Giá trị số nguyên có chữ ký tối đa cho hệ thống 64 bit là 9222337203685477.Các chuỗi rất có thể sẽ trả về 0 mặc dù điều này phụ thuộc vào các ký tự ngoài cùng bên trái của chuỗi. Các quy tắc phổ biến của việc đúc số nguyên áp dụng.
Ví dụ
Ví dụ #1 intval [] Ví dụintval[] examples
Các ví dụ sau đây dựa trên hệ thống 32 bit.
$integerIDs = json_decode['[' . $long_string . ']', true];
0Ghi chú
Ghi chú::
Tham số
5 không có hiệu lực trừ khi tham số$integerIDs = array_map['intval', explode[',', $long_string]];
4 là một chuỗi.$integerIDs = array_map['intval', explode[',', $long_string]];
Xem thêm
- boolval [] - Nhận giá trị boolean của một biến
- floatVal [] - nhận giá trị float của một biến
- strval [] - Nhận giá trị chuỗi của một biến
- setType [] - Đặt loại biến
- is_numeric [] - Tìm một biến là số hay chuỗi số
- Loại tung hứng
- BCMath Chức năng toán học chính xác tùy ý
Ken ¶ ¶
10 năm trước
$integerIDs = json_decode['[' . $long_string . ']', true];
3Leon tại Leonidasjp Dot NL ¶ ¶
5 năm trước
$integerIDs = json_decode['[' . $long_string . ']', true];
4 $integerIDs = json_decode['[' . $long_string . ']', true];
5 $integerIDs = json_decode['[' . $long_string . ']', true];
6Winbill tại hotmail dot com ¶
11 năm trước
$integerIDs = json_decode['[' . $long_string . ']', true];
7 $integerIDs = json_decode['[' . $long_string . ']', true];
8 $integerIDs = json_decode['[' . $long_string . ']', true];
6zak tại php dot net ¶ ¶
22 năm trước
$result_array = array[];
$strings_array = explode[',', $long_string];
foreach [$strings_array as $each_number] {
$result_array[] = [int] $each_number;
}
0 $result_array = array[];
$strings_array = explode[',', $long_string];
foreach [$strings_array as $each_number] {
$result_array[] = [int] $each_number;
}
1 $result_array = array[];
$strings_array = explode[',', $long_string];
foreach [$strings_array as $each_number] {
$result_array[] = [int] $each_number;
}
2 $result_array = array[];
$strings_array = explode[',', $long_string];
foreach [$strings_array as $each_number] {
$result_array[] = [int] $each_number;
}
3 $result_array = array[];
$strings_array = explode[',', $long_string];
foreach [$strings_array as $each_number] {
$result_array[] = [int] $each_number;
}
4 $result_array = array[];
$strings_array = explode[',', $long_string];
foreach [$strings_array as $each_number] {
$result_array[] = [int] $each_number;
}
5 $result_array = array[];
$strings_array = explode[',', $long_string];
foreach [$strings_array as $each_number] {
$result_array[] = [int] $each_number;
}
6 $result_array = array[];
$strings_array = explode[',', $long_string];
foreach [$strings_array as $each_number] {
$result_array[] = [int] $each_number;
}
7 $result_array = array[];
$strings_array = explode[',', $long_string];
foreach [$strings_array as $each_number] {
$result_array[] = [int] $each_number;
}
8 $result_array = array[];
$strings_array = explode[',', $long_string];
foreach [$strings_array as $each_number] {
$result_array[] = [int] $each_number;
}
9Method 1 Method 2 Method 3
0.4804770947 0.3608930111 0.3387751579
0.4748001099 0.363986969 0.3762528896
0.4625790119 0.3645150661 0.3335959911
0.5065748692 0.3570590019 0.3365750313
0.4803431034 0.4135499001 0.3330330849
0.4510772228 0.4421861172 0.341176033
0.503674984 0.3612480164 0.3561749458
0.5598649979 0.352314949 0.3766179085
0.4573421478 0.3527538776 0.3473439217
0.4863037268 0.3742785454 0.3488383293
0Method 1 Method 2 Method 3
0.4804770947 0.3608930111 0.3387751579
0.4748001099 0.363986969 0.3762528896
0.4625790119 0.3645150661 0.3335959911
0.5065748692 0.3570590019 0.3365750313
0.4803431034 0.4135499001 0.3330330849
0.4510772228 0.4421861172 0.341176033
0.503674984 0.3612480164 0.3561749458
0.5598649979 0.352314949 0.3766179085
0.4573421478 0.3527538776 0.3473439217
0.4863037268 0.3742785454 0.3488383293
1Method 1 Method 2 Method 3
0.4804770947 0.3608930111 0.3387751579
0.4748001099 0.363986969 0.3762528896
0.4625790119 0.3645150661 0.3335959911
0.5065748692 0.3570590019 0.3365750313
0.4803431034 0.4135499001 0.3330330849
0.4510772228 0.4421861172 0.341176033
0.503674984 0.3612480164 0.3561749458
0.5598649979 0.352314949 0.3766179085
0.4573421478 0.3527538776 0.3473439217
0.4863037268 0.3742785454 0.3488383293
2Method 1 Method 2 Method 3
0.4804770947 0.3608930111 0.3387751579
0.4748001099 0.363986969 0.3762528896
0.4625790119 0.3645150661 0.3335959911
0.5065748692 0.3570590019 0.3365750313
0.4803431034 0.4135499001 0.3330330849
0.4510772228 0.4421861172 0.341176033
0.503674984 0.3612480164 0.3561749458
0.5598649979 0.352314949 0.3766179085
0.4573421478 0.3527538776 0.3473439217
0.4863037268 0.3742785454 0.3488383293
3Method 1 Method 2 Method 3
0.4804770947 0.3608930111 0.3387751579
0.4748001099 0.363986969 0.3762528896
0.4625790119 0.3645150661 0.3335959911
0.5065748692 0.3570590019 0.3365750313
0.4803431034 0.4135499001 0.3330330849
0.4510772228 0.4421861172 0.341176033
0.503674984 0.3612480164 0.3561749458
0.5598649979 0.352314949 0.3766179085
0.4573421478 0.3527538776 0.3473439217
0.4863037268 0.3742785454 0.3488383293
4Method 1 Method 2 Method 3
0.4804770947 0.3608930111 0.3387751579
0.4748001099 0.363986969 0.3762528896
0.4625790119 0.3645150661 0.3335959911
0.5065748692 0.3570590019 0.3365750313
0.4803431034 0.4135499001 0.3330330849
0.4510772228 0.4421861172 0.341176033
0.503674984 0.3612480164 0.3561749458
0.5598649979 0.352314949 0.3766179085
0.4573421478 0.3527538776 0.3473439217
0.4863037268 0.3742785454 0.3488383293
5Method 1 Method 2 Method 3
0.4804770947 0.3608930111 0.3387751579
0.4748001099 0.363986969 0.3762528896
0.4625790119 0.3645150661 0.3335959911
0.5065748692 0.3570590019 0.3365750313
0.4803431034 0.4135499001 0.3330330849
0.4510772228 0.4421861172 0.341176033
0.503674984 0.3612480164 0.3561749458
0.5598649979 0.352314949 0.3766179085
0.4573421478 0.3527538776 0.3473439217
0.4863037268 0.3742785454 0.3488383293
6 $integerIDs = json_decode['[' . $long_string . ']', true];
6Ben Laurienti ¶ ¶
16 năm trước
Method 1 Method 2 Method 3
0.4804770947 0.3608930111 0.3387751579
0.4748001099 0.363986969 0.3762528896
0.4625790119 0.3645150661 0.3335959911
0.5065748692 0.3570590019 0.3365750313
0.4803431034 0.4135499001 0.3330330849
0.4510772228 0.4421861172 0.341176033
0.503674984 0.3612480164 0.3561749458
0.5598649979 0.352314949 0.3766179085
0.4573421478 0.3527538776 0.3473439217
0.4863037268 0.3742785454 0.3488383293
8Method 1 Method 2 Method 3
0.4804770947 0.3608930111 0.3387751579
0.4748001099 0.363986969 0.3762528896
0.4625790119 0.3645150661 0.3335959911
0.5065748692 0.3570590019 0.3365750313
0.4803431034 0.4135499001 0.3330330849
0.4510772228 0.4421861172 0.341176033
0.503674984 0.3612480164 0.3561749458
0.5598649979 0.352314949 0.3766179085
0.4573421478 0.3527538776 0.3473439217
0.4863037268 0.3742785454 0.3488383293
9explode[]
0
explode[]
1
explode[]
2
explode[]
3
explode[]
4
$integerIDs = json_decode['[' . $long_string . ']', true];
6Spoon_Reloaded tại Gmail Dot Com ¶ ¶
13 năm trước
explode[]
6
explode[]
7
explode[]
8
$integerIDs = json_decode['[' . $long_string . ']', true];
6Anony Moose ¶ ¶
2 năm trước
array_map[]
0
array_map[]
1
array_map[]
2
array_map[]
3
array_map[]
4
$integerIDs = json_decode['[' . $long_string . ']', true];
6Ben Laurienti ¶ ¶
2 năm trước
array_map[]
6
array_map[]
7
$integerIDs = json_decode['[' . $long_string . ']', true];
6Ẩn danh ¶ ¶
Anthony ¶
array_map[]
9
4 năm trước ¶
Espertalhao04 tại hotmail dot com
foreach
0
foreach
1
foreach
2
foreach
39 năm trước ¶
tuxedobob tại mac dot com ¶
foreach
4
foreach
5
foreach
6
$integerIDs = json_decode['[' . $long_string . ']', true];
618 năm trước ¶
Espertalhao04 tại hotmail dot com
foreach
8
foreach
9
array_map[]
0
$integerIDs = json_decode['[' . $long_string . ']', true];
69 năm trước ¶
16 năm trước
array_map[]
2
Spoon_Reloaded tại Gmail Dot Com ¶ ¶
11 năm trước
array_map[]
3
zak tại php dot net ¶ ¶
22 năm trước
array_map[]
4
array_map[]
5
array_map[]
6
array_map[]
7
6 ¶ $integerIDs = json_decode['[' . $long_string . ']', true];
16 năm trước
array_map[]
8