Làm cách nào tôi có thể nhận được nhiều giá trị trong PHP?

Chúng tôi yêu thích Pluralsight vì nó có hàng nghìn nội dung khóa học chất lượng cao và học phí cực kỳ phải chăng. Bạn không phải trả tiền cho các khóa học cá nhân. Đó là một thành viên hàng tháng thực sự nhỏ và bạn có quyền truy cập vào toàn bộ danh mục. Bạn có thể theo dõi và xem xét tất cả tiến trình của mình và cũng có thể nhận được các chứng chỉ bổ sung

khóa học

  • Mẫu thiết kế PHP
  • PHP. Bức tranh lớn
  • PHP8. Bảo mật ứng dụng web
  • PHP hiệu suất cao
  • PHP hướng đối tượng

Con đường học tập

  • Nguyên tắc cơ bản về phát triển PHP

Bản dùng thử miễn phí của Pluralsight

Tò mò về Pluralsight nhưng chưa sẵn sàng cam kết? . Chúng tôi đã có thể cho bạn dùng thử miễn phí để lái thử và xem tất cả các khóa học của họ. Click vào liên kết dưới đây

Dùng thử miễn phí Pluralsight trong 7 ngày

Đoạn mã thời gian xử lý kiểm tra

Sau đây là đoạn mã tôi đã sử dụng để kiểm tra 1 triệu lần thực thi. Tôi đã chạy nó trên phiên bản EC2 với 1cpu và 2g RAM

Total Execution Time: '.$execution_time.' Mins';



//
// Test the array_intersect function
//
//

$time_start = microtime(true); 

// Run 1000000 executions
for($i=0; $i<1000000; $i++){
    //It would contain the result of the array_filter intersection
    $intersection_arr = array_intersect($original, $toSearch);
}



$time_end = microtime(true);


//dividing with 60 will give the execution time in minutes otherwise seconds
$execution_time = ($time_end - $time_start)/60;

//execution time of the script
echo 'Total Execution Time: '.$execution_time.' Mins';



//
// Test the foreach loop method
//
//

$time_start = microtime(true); 

// Run 1000000 executions
for($i=0; $i<1000000; $i++){
    
    foreach($toSearch as $search)
    {
        //If a country in the $search_values exist in $country_arr
        if(in_array($search,$original))
        {
           $final[] = $search;
        }
    }
}



$time_end = microtime(true);


//dividing with 60 will give the execution time in minutes otherwise seconds
$execution_time = ($time_end - $time_start)/60;

//execution time of the script
echo 'Total Execution Time: '.$execution_time.' Mins';
Làm cách nào tôi có thể nhận được nhiều giá trị trong PHP?

Nội dung có liên quan trên tìm kiếm mảng

Cho đến nay, chúng ta đã thấy một loạt các hoạt động của mảng và hầu hết thời gian có một số tùy chọn để giải quyết vấn đề. Trong bài viết này, chúng ta sẽ khám phá cách tìm kiếm nhiều giá trị trong một mảng PHP. Chúng tôi đã thấy các bài viết tương tự. Bạn có thể kiểm tra chúng nếu bạn cần

  • Tìm kiếm số nguyên trong mảng kết hợp
  • Cho biết nếu một phần tử có mặt trong một mảng

Các bài viết này xử lý một tìm kiếm liên quan đến việc tra cứu một mảng cho một giá trị. Ở đây chúng ta có một kịch bản hơi khác. Chúng tôi có nhiều giá trị và chúng tôi phải tìm kiếm các giá trị này trong một mảng

Giải pháp tìm kiếm nhiều giá trị trong mảng PHP

Có một số cách hiểu về "tìm kiếm nhiều giá trị trong một mảng PHP". Việc tìm kiếm có thể là cho.  

  • Một tập hợp con cụ thể của các giá trị. (Ngã tư)
  • Một tập hợp con của các giá trị đủ điều kiện cho một điều kiện cụ thể. (Truy vấn)

Chúng tôi sẽ cố gắng xem xét chủ đề từ tất cả các quan điểm này

Vì vậy, không cần phải bận tâm thêm nữa, hãy xem cách tìm kiếm nhiều giá trị trong một mảng PHP

Tìm kiếm nhiều giá trị trong mảng PHP bằng vòng lặp foreach

  1. Tạo một biến bao gồm tất cả các giá trị trong một mảng $fullList chứa tất cả các giá trị
  2. Xác định các giá trị bạn muốn tìm kiếm trong một mảng $searchable riêng biệt
  3. Khởi tạo một mảng tìm kiếm cuối cùng được gọi là $intersectionArray
  4. Lặp lại mảng cơ sở $fullList với vòng lặp foreach
  5. Sử dụng hàm in_array trong câu lệnh if để xem liệu có phần tử $searchable nào tồn tại trong mảng $fullList hiện tại không
  6. Thêm giá trị vào $intersectionArray khi hàm in_array trả về true
  7. Thực hiện var_dump của mảng giao nhau khi hoàn tất

Một

 USA
    [1] => Canada
)
*/
 
?>
0 là điều đầu tiên xuất hiện trong đầu khi chúng ta có các mảng kết hợp. Đó thực sự là điều không thể tránh khỏi và các nhà phát triển cũng như lập trình viên PHP phải dùng đến nó ngay cả khi PHP cung cấp một chức năng chuyên biệt cho một hoạt động

Lý do là vì

 USA
    [1] => Canada
)
*/
 
?>
0 cho phép tự do chơi với các khóa và giá trị của một mảng kết hợp. Ở đây chúng ta sẽ sử dụng nó để tìm kiếm nhiều giá trị trong mảng PHP

Thí dụ. Tìm một tập hợp con cụ thể của các giá trị trong mảng PHP

Trong ví dụ này, chúng ta sẽ xem cách tìm kiếm một mảng cho một nhóm con các giá trị. Phối cảnh vấn đề này tìm kiếm một nhóm các phần tử trong một mảng và trả về những phần tử mà nó tìm thấy thành công.  

Phép toán này tương tự như giao của hai tập hợp. Nếu bạn đã từng học lý thuyết tập hợp ở trường, bạn có thể liên hệ khá tốt. Hình dưới đây làm rõ quan điểm này

Làm cách nào tôi có thể nhận được nhiều giá trị trong PHP?

 USA
    [1] => Canada
)
*/
 
?>

Ví dụ tìm giao giữa 2 mảng và trả về giá trị chung. Lưu ý rằng chúng tôi đã sử dụng hàm

 USA
    [1] => Canada
)
*/
 
?>
2 trả về true nếu một quốc gia tồn tại trong $country_arr

Thí dụ. Tìm một tập hợp con các giá trị trong mảng PHP đủ điều kiện cho một điều kiện cụ thể

Thao tác này tương tự như một truy vấn nếu bạn đã quen thuộc với cơ sở dữ liệu. Bạn không biết cũng không sao vì nó có nghĩa là tra cứu dữ liệu dựa trên quy tắc hoặc tiêu chí nào đó. Dưới đây là một vài truy vấn có thể phù hợp với ngữ cảnh

  • Tìm kiếm các quốc gia có tên có hơn năm chữ cái
  • Tìm kiếm các quốc gia có tên bắt đầu từ chữ cái “A”
  • Tìm các quốc gia có tên kết thúc bằng chữ cái “A. ”

Đây chỉ là một vài ví dụ và bạn sẽ xử lý nhiều ví dụ như vậy nếu bạn đang làm việc trên một ứng dụng sử dụng nhiều dữ liệu theo thời gian thực. Hãy làm một ví dụ và tìm nhiều giá trị trong mảng PHP có tên có nhiều hơn năm chữ cái

Làm cách nào tôi có thể nhận được nhiều giá trị trong PHP?
 5)
    {
        array_push($resultant_arr,$country);
    }
}
 
print_r($resultant_arr);
 
/*
OUTPUT
Array
(
    [0] => Canada 
    [1] => Mexico 
    [2] => Germany
)
*/

?>

Tuyệt quá. Nó truy vấn mảng và tìm kiếm nhiều giá trị đáp ứng điều kiện truy vấn. Hãy khám phá thêm các tùy chọn để tìm nhiều giá trị trong mảng PHP

Tìm kiếm nhiều giá trị trong một mảng PHP bằng array_filter

PHP

Total Execution Time: '.$execution_time.' Mins';



//
// Test the array_intersect function
//
//

$time_start = microtime(true); 

// Run 1000000 executions
for($i=0; $i<1000000; $i++){
    //It would contain the result of the array_filter intersection
    $intersection_arr = array_intersect($original, $toSearch);
}



$time_end = microtime(true);


//dividing with 60 will give the execution time in minutes otherwise seconds
$execution_time = ($time_end - $time_start)/60;

//execution time of the script
echo 'Total Execution Time: '.$execution_time.' Mins';



//
// Test the foreach loop method
//
//

$time_start = microtime(true); 

// Run 1000000 executions
for($i=0; $i<1000000; $i++){
    
    foreach($toSearch as $search)
    {
        //If a country in the $search_values exist in $country_arr
        if(in_array($search,$original))
        {
           $final[] = $search;
        }
    }
}



$time_end = microtime(true);


//dividing with 60 will give the execution time in minutes otherwise seconds
$execution_time = ($time_end - $time_start)/60;

//execution time of the script
echo 'Total Execution Time: '.$execution_time.' Mins';
0 là một chức năng mạnh mẽ. Nó thường thực hiện tương đương với vòng lặp foreach và điều đó cũng xảy ra trong một lớp lót. Nó nhận một hàm gọi lại và dựa trên kiểu boolean trả về, nó quyết định giữ lại hoặc loại bỏ một giá trị.  

Chúng tôi sẽ đi thẳng vào các ví dụ và cố gắng làm lại các kịch bản chúng tôi đã làm trong phần trước. Cách tiếp cận này sẽ cho phép chúng tôi vẽ ra sự tương phản giữa hai tùy chọn

Tìm một tập hợp con cụ thể của các giá trị trong Mảng PHP với array_filter

 USA   
    [1] => Canada
)
*/
 
 
?>

Bạn có thể thấy rằng mã trở nên ngắn hơn và sạch hơn nhiều. Cách tiếp cận

Total Execution Time: '.$execution_time.' Mins';



//
// Test the array_intersect function
//
//

$time_start = microtime(true); 

// Run 1000000 executions
for($i=0; $i<1000000; $i++){
    //It would contain the result of the array_filter intersection
    $intersection_arr = array_intersect($original, $toSearch);
}



$time_end = microtime(true);


//dividing with 60 will give the execution time in minutes otherwise seconds
$execution_time = ($time_end - $time_start)/60;

//execution time of the script
echo 'Total Execution Time: '.$execution_time.' Mins';



//
// Test the foreach loop method
//
//

$time_start = microtime(true); 

// Run 1000000 executions
for($i=0; $i<1000000; $i++){
    
    foreach($toSearch as $search)
    {
        //If a country in the $search_values exist in $country_arr
        if(in_array($search,$original))
        {
           $final[] = $search;
        }
    }
}



$time_end = microtime(true);


//dividing with 60 will give the execution time in minutes otherwise seconds
$execution_time = ($time_end - $time_start)/60;

//execution time of the script
echo 'Total Execution Time: '.$execution_time.' Mins';
0 khá phức tạp so với vòng lặp foreach. Hãy cũng thử kịch bản thứ hai

Tìm một tập hợp con các giá trị đủ điều kiện cho một điều kiện cụ thể trong một mảng PHP bằng cách sử dụng array_filter

Đây là một ví dụ tương phản với ví dụ truy vấn mà chúng ta đã làm trong phần foreach

 5;
});
 
print_r($intersection_arr);
 
/*
OUTPUT
Array
(
    [1] => Canada
    [2] => Mexico
    [3] => Germany
)
*/
 
 
?>

Hãy xem nó thực hiện chức năng truy vấn tiện lợi như thế nào, ít rắc rối hơn nhiều. Bây giờ là lúc để chuyển sang tùy chọn thứ ba

Tìm nhiều giá trị trong một mảng PHP bằng hàm array_intersect

PHP cung cấp một hàm để giao hai mảng khác nhau. Hàm mà chúng ta sẽ gặp cô ấy là hàm

Total Execution Time: '.$execution_time.' Mins';



//
// Test the array_intersect function
//
//

$time_start = microtime(true); 

// Run 1000000 executions
for($i=0; $i<1000000; $i++){
    //It would contain the result of the array_filter intersection
    $intersection_arr = array_intersect($original, $toSearch);
}



$time_end = microtime(true);


//dividing with 60 will give the execution time in minutes otherwise seconds
$execution_time = ($time_end - $time_start)/60;

//execution time of the script
echo 'Total Execution Time: '.$execution_time.' Mins';



//
// Test the foreach loop method
//
//

$time_start = microtime(true); 

// Run 1000000 executions
for($i=0; $i<1000000; $i++){
    
    foreach($toSearch as $search)
    {
        //If a country in the $search_values exist in $country_arr
        if(in_array($search,$original))
        {
           $final[] = $search;
        }
    }
}



$time_end = microtime(true);


//dividing with 60 will give the execution time in minutes otherwise seconds
$execution_time = ($time_end - $time_start)/60;

//execution time of the script
echo 'Total Execution Time: '.$execution_time.' Mins';
2

Sự mô tả

Tìm giao điểm của hai mảng

Chữ ký chức năng

Total Execution Time: '.$execution_time.' Mins';



//
// Test the array_intersect function
//
//

$time_start = microtime(true); 

// Run 1000000 executions
for($i=0; $i<1000000; $i++){
    //It would contain the result of the array_filter intersection
    $intersection_arr = array_intersect($original, $toSearch);
}



$time_end = microtime(true);


//dividing with 60 will give the execution time in minutes otherwise seconds
$execution_time = ($time_end - $time_start)/60;

//execution time of the script
echo 'Total Execution Time: '.$execution_time.' Mins';



//
// Test the foreach loop method
//
//

$time_start = microtime(true); 

// Run 1000000 executions
for($i=0; $i<1000000; $i++){
    
    foreach($toSearch as $search)
    {
        //If a country in the $search_values exist in $country_arr
        if(in_array($search,$original))
        {
           $final[] = $search;
        }
    }
}



$time_end = microtime(true);


//dividing with 60 will give the execution time in minutes otherwise seconds
$execution_time = ($time_end - $time_start)/60;

//execution time of the script
echo 'Total Execution Time: '.$execution_time.' Mins';
3

Tranh luận

  • $array   – Mảng chính
  • $arrays – Mảng để so sánh các giá trị với

Loại trả lại

Hàm trả về mảng giao của đối số chính với tất cả các mảng trong đối số thứ hai

Tìm kiếm & Tìm một tập hợp con cụ thể của các giá trị trong một mảng PHP bằng cách sử dụng hàm array_intersect

 USA
    [1] => Canada
)
*/
 
 
?>

Gọi hàm nhanh tìm giao điểm giữa hai mảng. Tiện dụng phải không?

Phần kết luận

Trong bài viết này, chúng ta đã thấy cách tìm kiếm nhiều giá trị trong mảng PHP. Chúng tôi đã khám phá quan điểm giao nhau và truy vấn của vấn đề và sử dụng ba tùy chọn khác nhau để tìm nhiều giá trị trong mảng PHP. Các tùy chọn mà chúng tôi đã khám phá bao gồm các hàm foreach loop, array_filter và array_intersection. Chúng tôi hy vọng bạn đã học được điều gì đó mới hôm nay. Hãy theo dõi để biết thêm nội dung thú vị liên quan đến PHP

Bạn muốn khám phá thêm các bài hướng dẫn PHP hữu ích?

Chúng tôi có nhiều bài viết thú vị liên quan đến PHP. Bạn có thể khám phá những điều này để tìm hiểu thêm về PHP

Cách lọc mảng đối tượng theo giá trị trong PHP

Cách lọc mảng đối tượng theo khóa trong PHP

Sự khác biệt giữa vòng lặp while và do-while trong PHP

Làm cách nào tôi có thể nhận được nhiều giá trị trong PHP?

Bài viết liên quan

Làm cách nào tôi có thể nhận được nhiều giá trị trong PHP?
Mảng đối tượng trong PHP. Tạo, Sắp xếp, Lọc, Hợp nhất, Tìm kiếm, v.v.
Làm cách nào tôi có thể nhận được nhiều giá trị trong PHP?
Mảng kết hợp hoặc bản đồ băm trong PHP là gì
Làm cách nào tôi có thể nhận được nhiều giá trị trong PHP?
Cách POST Nội dung cURL từ Tệp trong PHP. JSON, CSV và hơn thế nữa
Làm cách nào tôi có thể nhận được nhiều giá trị trong PHP?
Cách lọc các mảng kết hợp PHP


  • ← Đọc tệp CSV vào mảng liên kết với các tiêu đề PHP Ví dụ
  • Cách lọc một đối tượng mảng theo giá trị bằng các ví dụ mã PHP →

Làm cách nào tôi có thể nhận được nhiều giá trị trong PHP?

Stephen Phép Lạ

Chào. Tôi hy vọng bạn thích bài viết này. Tôi đã phát triển các trang web và phần mềm một cách chuyên nghiệp trong hơn 20 năm. Tôi bắt đầu FuelingPHP như một cách để đền đáp lại cộng đồng nguồn mở đã giúp tôi có thể sống thoải mái khi xây dựng những thứ tôi yêu thích

Làm cách nào để có nhiều lựa chọn trong PHP?

Cách nhận nhiều giá trị được chọn của hộp chọn trong PHP .
Trên windows, bạn nên giữ phím + CTRL để chọn nhiều tùy chọn
Trên máy Mac, cần giữ phím lệnh để chọn nhiều tùy chọn

Làm cách nào để nhận nhiều giá trị trong mảng trong PHP?

Khi nói về lưu trữ giá trị trong PHP, chúng ta nói về mảng từ. Để lưu trữ nhiều giá trị, có hai cách thực hiện tác vụ. Một cách là gán từng giá trị cho một biến duy nhất và cách còn lại, hiệu quả hơn nhiều, là gán nhiều giá trị cho một biến. Đó là những gì chúng ta gọi là một mảng.

Làm cách nào tôi có thể trả về nhiều giá trị từ một danh sách?

Sử dụng đối tượng. Điều này cũng tương tự với C/C++ và Java, chúng ta có thể tạo một lớp (trong C là struct) để chứa nhiều giá trị và trả về một đối tượng của lớp. .
Sử dụng Tuple. Tuple là một chuỗi các mục được phân tách bằng dấu phẩy. .
Sử dụng một danh sách. Một danh sách giống như một mảng các mục được tạo bằng dấu ngoặc vuông

Làm cách nào để kiểm tra nhiều giá trị trong điều kiện if trong PHP?

PHP nếu. khác. câu lệnh elseif .
câu lệnh if - thực thi một số mã nếu một điều kiện là đúng
nếu. câu lệnh khác - thực thi một số mã nếu một điều kiện là đúng và một mã khác nếu điều kiện đó là sai
nếu. khác. câu lệnh khác - thực thi các mã khác nhau cho hơn hai điều kiện