Đã có bài sơ lượt qua mảng trong PHP. Bài này chúng ta sẽ tìm hiểu chi tiết thêm về các hàm xử lý mảng (array).
1. array_change_key_case. (PHP 4 >= 4.2.0, PHP 5, PHP 7)
array array_change_key_case ( array
$array
[, int $case
= CASE_LOWER ] )
Chuyển tất cả các key trong mảng $array sang chữ hoa nếu $case = CASE_UPPER và sang chữ thường nếu $case =CASE_LOWER. Kết quả trả về là mảng với các key là chữ hoa hoặc chữ thường, hoặc False nếu $array không phải mảng.
[php]
<?php $input_array = array("FirSt" => 1, "SecOnd" => 4);
print_r(array_change_key_case($input_array, CASE_UPPER));
?>
[/php]
Kết quả hiển thị:
[php]
Array
(
[FIRST] => 1
[SECOND] => 4
)
[/php]
2. array_chunk. (PHP 4 >= 4.2.0, PHP 5, PHP 7)
array array_chunk ( array $array , int $size [, bool $preserve_keys = FALSE ] )
Chia các phần tử trong $array thành (các) mảng mới trong đó mỗi phần tử của mảng mới là một mảng gồm $size phần tử.
Parameters:
Hàm array_chunk() sẽ trả kết quả là một mảng mà ta đã cắt và sắp xếp, số phần tử sẽ phụ thuộc vào tham số $size.
[php]
<?php $input_array = array(‘a’, ‘b’, ‘c’, ‘d’, ‘e’); print_r(array_chunk($input_array, 2)); print_r(array_chunk($input_array, 2, true)); ?>
[/php]
Kết quả hiển thị:
[php]
Array
(
[0] => Array
(
[0] => a
[1] => b
)
[1] => Array
(
[0] => c
[1] => d
)
[2] => Array
(
[0] => e
)
)
Array
(
[0] => Array
(
[0] => a
[1] => b
)
[1] => Array
(
[2] => c
[3] => d
)
[2] => Array
(
[4] => e
)
)
[/php]
3. array_column (PHP 5 >= 5.5.0, PHP 7)
array array_column ( array
$input
, mixed $column_key
[, mixed $index_key
= NULL ] )
Dùng để lấy một cột trong một mảng và trả về giá trị từ cột đó.
Parameters:
Không có $index_key:
[php]
<?php $records = array( array(‘id’ => 2135,’first_name’ => ‘John’,’last_name’ => ‘Doe’),
array(‘id’ => 3245,’first_name’ => ‘Sally’,’last_name’ => ‘Smith’),
array(‘id’ => 5342,’first_name’ => ‘Jane’,’last_name’ => ‘Jones’),
array(‘id’ => 5623,’first_name’ => ‘Peter’,’last_name’ => ‘Doe’)
);
$first_names = array_column($records, ‘first_name’);
print_r($first_names);
?>
[/php]
Kết quả:
[php]
Array
(
[0] => John
[1] => Sally
[2] => Jane
[3] => Peter
)
[/php]
Có $index_key:
[php]
<?php $last_names = array_column($records, ‘last_name’, ‘id’); print_r($last_names); ?>
[/php]
Kết quả:
[php]
Array
(
[2135] => Doe
[3245] => Smith
[5342] => Jones
[5623] => Doe
)
[/php]
4. array_combine (PHP 5, PHP 7)
array array_combine ( array
$keys
, array $values
)
Tạo một mảng sử dụng các giá trị từ mảng $keys là các key và các giá trị từ mảng $values là các value tương ứng.
Parameters:
Mảng mới sẽ được trả về, và là False nếu số phần tử của 2 mảng $key và $values không bằng nhau.
[php]
<?php $a = array(‘green’, ‘red’, ‘yellow’); $b = array(‘avocado’, ‘apple’, ‘banana’); $c = array_combine($a, $b); print_r($c); ?>
[/php]
Kết quả:
[php]
Array
(
[green] => avocado
[red] => apple
[yellow] => banana
)
[/php]
5. array_count_values (PHP 4, PHP 5, PHP 7)
array array_count_values ( array
$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ả.
[php]
<?php $array = array(1, "hello", 1, "world", "hello"); print_r(array_count_values($array)); ?>
[/php]
Kết quả:
[php]
Array
(
[1] => 2
[hello] => 2
[world] => 1
)
[/php]
6. array_diff_assoc (PHP 4 >= 4.3.0, PHP 5, PHP 7)
array array_diff_assoc ( array
$array1
, array $array2
[, array $...
] )
Có tác dụng lấy ra các phần tử ở mảng thứ nhất không nằm ở tất cả các mảng còn lại.
[php]
<?php $array1 = array("a" => "green", "b" => "brown", "d" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>
[/php]
Kết quả:
Array
(
[b] => brown
[d]=> blue
[0] => red
)
Kết quả trên có [0]=> red vì, ở mảng 1 red có key là 0, còn ở mảng 2 red có key là 1, nên red ở array1 được lấy ra.
7. array_diff_key (PHP 5 >= 5.1.0, PHP 7)
array array_diff_key ( array
$array1
, array $array2
[, array $...
] )
Có tác dụng lấy các phần tử không giống nhau ở tất cả các mảng.
[php]
<?php $array1 = array(‘blue’ => 1, ‘red’ => 2, ‘green’ => 3, ‘purple’ => 4);
$array2 = array(‘green’ => 5, ‘yellow’ => 7, ‘cyan’ => 8);
var_dump(array_diff_key($array1, $array2));
?>
[/php]
Kết quả:
[php]
array(3) {
["blue"]=>
int(1)
["red"]=>
int(2)
["purple"]=>
int(4)
}
[/php]
8. array_diff_uassoc (PHP 5, PHP 7)
array array_diff_uassoc ( array
$array1
, array $array2
[, array $...
], callback$key_compare_func
)
Hàm array_diff_uassoc() sẽ trả về một mảng các phần tử theo điều kiện của hàm $key_compare_func truyền vào, điều này khác với array_diff_assoc() là hàm để so sánh theo toán tử bằng.
Parameters:
$key1 = $key2
, lớn hơn 0 nếu$key1 > $key2
và bé hơn 0 nếu $key1 < $key2
Hàm key_compare_func
sẽ có hai tham số truyền vào là $a
và $b
chính là các key lần lượt là key của mảng thứ nhất trong danh sách tham số truyền vào và các key của mảng còn lại. Nếu hàm trả về khác 0 (lớn hơn 0 hoặc bé hơn 0) thì phần tử của lượt đó được chọn.
[php]
<?php function key_compare_func($a, $b) { if ($a === $b) { return 0; } return ($a > $b)? 1:-1;
}
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result = array_diff_uassoc($array1, $array2, "key_compare_func");
print_r($result);
?>
[/php]
Kết quả:
[php]
Array
(
[b] => brown
[c] => blue
[0] => red
)
[/php]
9. array_diff_ukey (PHP 5 >= 5.1.0, PHP 7)
array array_diff_ukey ( array
$array1
, array $array2
[, array $array3...
], callback$key_compare_func
)
So sánh key của array1 với key của array2 và trả về sự khác nhau. Hàm này giống hàm array_diff() ngoại trừ phép so sánh được thực hiện trên các key thay vì các value.
Không giống hàm array_diff_key(), một hàm callback do người sử dụng cung cấp để so sánh các chỉ mục.
Parameters:
$key1 = $key2
, lớn hơn 0 nếu$key1 > $key2
và bé hơn 0 nếu $key1 < $key2
Hàm sẽ trả về tất cả đầu vào của array1 mà không có mặt trong mảng khác.
[php]
<?php function key_compare_func($a,$b) { if ($a===$b) { return 0; } return ($a>$b) ? 1: -1;
}
$array1 = array(0=>"banana", 1=>"orange", 2=>"grapes");
$array2 = array(3=>"apple",1=>"apricot", 5=>"mango");
print_r(array_diff_ukey($array1,$array2,"key_compare_func"));
?>
[/php]
Kết quả:
[php]
Array
(
[0] => banana
[2] => grapes
)
[/php]
10. array_diff (PHP 4 >= 4.0.1, PHP 5, PHP 7)
array array_diff ( array
$array1
, array $array2
[, array $array3...
] )
So sánh array1 với array2 và $array… trả về sự khác nhau.
Parameters:
[php]
<?php $input_array1 = array("orange", "banana", "apple"); $input_array2 = array("orange", "mango", "apple"); print_r(array_diff($input_array1, $input_array2)); ?>
[/php]
Kết quả:
[php]
Array
(
[1] => banana
)
[/php]
Trên là 10 hàm xử lý mảng trong các bài tổng hợp mảng của nongdanit.info. Bài tiếp theo của tổng hợp này sẽ là các hàm như: array_fill_keys, array_fill, array_filter…
Tham khảo: http://php.net