[PHP&MySQL] Bài 13: Các hàm xử lý mảng trong PHP

Như ở bài mảng trong lập trình PHP mà mình đã giới thiệu ở bài trước, chúng ta thấy mảng là một trong những kiểu dữ liệu khá linh động và được sử dụng nhiều trong lập trình. Sức mạnh của nó không phải ở cách lưu giữ giá trị một cách đa dạng, mà nó còn mạnh là bởi có tập hợp các hàm để xử lý những bài toán phức tạp mà người sử dụng không phải lập trình lại.

Sau đây là các hàm chúng ta hay sử dụng nhất.

1. array_change_key_case($array, $case)

Chuyển tất cả các key trong mảng $array sang chữ hoa nếu $case = 1 và sang chữ thường nếu $case = 0. Ta có thể dùng hằng số CASE_UPPER thay cho số 1 và CASE_LOWER thay cho số 0.

$array = array(
    'chu_thuong' =--> 'Hello'
);
  
$array = array_change_key_case($array, CASE_UPPER);
  
var_dump($array);
// Kết quả là:   'CHU_THUONG' => 'Hello'

2. array_combine($array_keys, $array_values)

Trộn 2 mảng $array_keys và $array_values thành một mảng kết hợp với $array_keys là danh sách keys, $array_value là danh sách value tương ứng với key. Điều kiện là 2 mảng này phải bằng nhau.

$array_keys = array('a', 'b', 'c');
$array_values = array('one', 'two', 'three');
print_r(array_combine($array_keys, $array_values));
/* kết quả:
Array(
[a] => one
[b] => two
1 => three;
)*/;

3. array_count_values ( $array )

Đếm số lần xuất hiện của các phần tử giống nhau trong mảng $array và trả về một mảng kết quả.

$array = array(1, "hello", 1, "world", "hello");
print_r(array_count_values($array));
/* Kết quả:
Array (
[1] => 2;
[hello] => 2;
[world] => 1
)*/

4. array_push(&$array, $add_value1, $add_value2, $add_value…)

Thêm vào cuối mảng $array một hoặc nhiều phần tử với các giá trị tương ứng biến $add_value truyền vào.

$stack = array("orange", "banana");
array_push($stack, "apple", "raspberry");
print_r($stack);
/* Kết quả
Array
(
    [0] => orange
    [1] => banana
    [2] => apple
    [3] => raspberry
)
*/

5. array_pop(&$array)

Xóa trong mảng $array phần tử cuối cùng và trả về phần tử đã xóa.

$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_pop($stack);
print_r($stack);
  
/* Biến $stack sẽ còn 3 giá trị
Array (
    [0] => orange
    [1] => banana
    [2] => apple
)
Còn biến $fruit sẽ có giá trị là raspberry
*/

6. array_pad($array, $size, $value)

Kéo dãn mảng $array với kích thước là $size, và nếu kích thước truyền vào lớn hơn kích thước mảng $array thì giá trị $value được thêm vào, ngược lại nếu kích thước truyền vào nhỏ hơn kích thước mảng $array thì sẽ giữ nguyên. Nếu muốn giãn ở cuối mảng thì $size có giá trị dương, nếu muốn giãn ở đầu mảng thì $size có giá trị âm.

$input = array(12, 10, 9);
  
// Giãn thành 5 phần tử ở cuối mảng và
// các phần tử giãn có giá trị là 5:
$result = array_pad($input, 5, 0);
// Kết quả là  array(12, 10, 9, 0, 0)
  
// Giản thành 7 phần tử ở đầu mảng
//  và các phần tử giãn có giá trị -1
$result = array_pad($input, -7, -1);
// Kết quả là array(-1, -1, -1, -1, 12, 10, 9)
  
// Giãn thành 2 phần tử nhưng mảng $input
// lại có 3 phần tử nên sẽ không được xử lý
$result = array_pad($input, 2, "noop");
// Kết quả giữ nguyên array(12, 10, 9)

7. array_shift(&$array)

Xóa phần tử đầu tiên ra khỏi mảng $array và trả về phần tử vừa xóa đó.

$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_shift($stack);
print_r($stack);
/* Kết quả biến $stack
Array (
    [0] => banana
    [1] => apple
    [2] => raspberry
)
Kết quả biến $fruit là orange */

8. array_unshift(&$array, $value1, $value2, …)

Thêm các giá trị $value1, $value2, … vào đầu mảng $array.

$queue = array("orange", "banana");
array_unshift($queue, "apple", "raspberry");
print_r($queue);
/*Kết quả là:
* Array (
    [0] => apple
    [1] => raspberry
    [2] => orange
    [3] => banana
* ) */

9. is_array($variable).

Kiểm tra một biến có phải kiểu mảng hay không, kết quả trả về true nếu phải và false nếu không phải.

$bien1 = array();
$bien2 = '';
  
// Kết quả trả về true var_dump($bien1);
// Kết quả trả về false var_dump($bien2);

10. in_array($needle, $haystackarray)

Kiểm tra giá trị $needle có nằm trong mảng $haystackarray không. trả về true nếu có và flase nếu không có.

$haystackarray = array('hello', 'nobody', 'freetuts.net');
  
// Kết quả là true
var_dump(in_array('freetuts.net', $haystackarray));
  
// Kết quả là false
var_dump(in_array('net', $haystackarray));

12. array_unique( $array )

Loại bỏ giá trị trùng trong mảng $array.

$array = array('freetuts.net', 'freetuts.net');
$result = array_unique($array);
  
// Kết quả mảng chỉ còn 1 giá trị freetuts.net
var_dump($result);

13. array_values ($array )

Chuyển mảng $array sang dạng mảng chỉ mục.

$array = array(
    'username' => 'thehalfheart',
    'password' => 'somepasss'
);
  
var_dump(array_values($array));
/* Kêt quả của mảng là array(
    0 => thehalfheart,
    1 => somepasss
) */

Lời kết

Ở bài này, mình đã giới thiệu với các bạn một số hàm thông dụng thường dùng nhất khi xử lý các bài toán liên quan đến mảng. Còn rất nhiều hàm xây dựng sẵn để xử lý mảng, các bạn có thể tìm hiểu thêm tại php.net.

Bình luận