Các hàm xử lý mảng trong php


php tham khảo 29/09/2015 Cùng chuyên mục

Tham khảo các hàm xử lý mảng phổ biến trong php như count() - array_diff() - array_fill(), array_search(), array_push(), array_keys(), array_slice(),...

Hàm count() 

Cú pháp: int count(array $arr) - đếm số lượng phần tử của mảng.
Ví dụ 1:

$arr = array(1, 2, 3);
print "So luong phan tu cua mang: ".count($arr);
//kết quả: So luong phan tu cua mang: 3

Hàm in_array()

Cú pháp: bool in_array($value_search, array $array_find)
Công dụng: xác định xem giá trị cần tìm có trong mảng hay không
Trong đó:

  • $value_search: là giá trị cần tìm
  • $array_find: là mảng tìm kiếm
  • hàm trả ra TRUE nếu tìm thấy, ngược lại trả ra FALSE

Ví dụ 2:  Tìm giá trị 1 trong mảng $arr có 3 phần tử 1, 2, 3

<?php
    $arr = array(1,2,3);
    //hàm trả ra kết quả tìm kiếm giá trị trong 1 mảng  
    function find($key,$arr)
    {
         if(in_array($key,$arr))
        {
            echo 'Tìm thấy';
        }
        else
        {
            echo 'Không tìm thấy';
        }
    }
    find(1,$arr); //tìm thấy
    find(5,$arr); //không tìm thấy
?>

Hàm array_key_exists()

Công dụng: Xác định xem có khóa trong mảng hay không
Cú pháp: bool array_key_exists($key_search, array $array_find)
Trong đó:

  • $key_search: là khóa cần tìm
  • $array_find: là mảng tìm kiếm
  • hàm trả ra TRUE nếu tìm thấy, ngược lại trả ra FALSE

Ví dụ 3: Tìm kiếm khóa '1', '5' trong mảng $arr với hàm array_key_exists()

<?php
    $arr = array("mot","hai","ba");
    //hàm trả ra kết quả tìm kiếm giá trị trong 1 mảng  
    function find_key($key,$arr)
    {
         if(array_key_exists($key,$arr))
        {
            echo 'Tìm thấy','giá trị trong mảng: ',$arr[$key];
        }
        else
        {
            echo 'Không tìm thấy';
        }
    }
    find_key(1,$arr); //tìm thấy
    find_key(5,$arr); //không tìm thấy
?>

Hàm array_fill()

Cú pháp: array array_fill ( int $start_index , int $num , mixed $value )
Công dụng: Thêm một số lượng ($num) giá trị ($value) từ vị trí ($start_index) vào mảng
Trong đó:

  • $start_index: vị trí thêm giá trị trong mảng
  • $num: số giá trị sẽ thêm vào mảng
  • $value: giá trị thêm vào mảng

Ví dụ 4: Thêm 2 giá trị 'add' từ vị trí bắt đầu mảng - thêm giá trị 'record' vào vị trí -1

<?php
	$arr = array();
	$arr = array_fill(0,2,'add');
	print_r($arr); //array([0] => 'add' [1] => 'add')
	$arr = array_fill(-1,1,'record');
	print_r($arr); //array([-4] => 'record' [0] => 'add' [1] => 'add')
?>

 Hàm array_search()

Cú pháp: mixed array_search( mixed $needle , array $haystack [, bool $strict = false ])
Trong đó:

  • $needle: là từ khóa tìm kiếm - có thể có các kiểu như int, string, ...
  • $haystack: là mảng tìm kiếm
  • Tùy chọn $strict: tìm kiếm nghiêm ngặt - hàm sẽ kiểm tra xem kiểu dữ liệu của khóa tìm kiếm và phần tử trong mảng $haystack có giống nhau hay không. 
  • Giá trị trả về: hàm sẽ trả ra khóa (key) trong mảng tìm kiếm nếu tìm thấy - trả ra FALSEnếu không tìm thấy

Ví dụ 5: Tìm giá trị '1' trong mảng $arr có 3 phần tử '1' '2' '3'

$arr = array(1, 2, 3);
$found = array_search(1, $arr);
/*sử dụng !== vì trong trường hợp vị trí tìm thấy là 0
nếu kiểm tra $found sẽ trả ra FALSE nhưng thực tế là có tìm thấy  => sai */
if(($found !== FALSE))
{
    echo 'Tim thay, vi tri '.$found;
}
else
{
    echo 'Khong tim thay';
}

Hàm array_sum()

Cú pháp: mixed array_sum(array $arr)
Công dụng: tính tổng của mảng - hàm trả ra tổng của mảng dạng số nguyên hoặc số thực
Ví dụ 6: Tính tổng của mảng (1, 2, 3); mảng (1.5, 2.5, 3.2)

<?php
	$arr = array(1, 2, 3);
	print array_sum($arr); //kết quả: 6
	$arr = array(1.5, 2.5, 3.2);
	print array_sum($arr); //kết quả: 7.2
?>

Hàm array_keys()

Công dụng: Lấy ra tất cả các khóa (key) trong mảng hoặc một tập hợp khóa theo điều kiện
Cú pháp: array array_keys ( array $array [, mixed $search_value [, bool $strict = false ]] )
Trong đó:

  • $array: là mảng cần lấy ra các khóa, tập hợp khóa
  • $search_value: (tùy chọn) - giá trị tìm kiếm, các khóa lấy ra có giá trị bằng với giá trị tìm kiếm
  • $strict: so sánh nghiêm ngặt ( nếu đặt là TRUE sẽ yêu cầu khóa có giá trị trùng cả kiểu dữ liệu và giá trị so với giá trị tìm kiếm ( === ) )

Ví dụ 7: 

<?php
	$array = array(0 => 10, "gioi-tinh" => "nam");
	print_r(array_keys($array)); //kết quả: array([0] => 0 [1] => 'gioi-tinh')

	$array = array("Nam", "Nu", "Nam", "Nam", "Nu");
	print_r(array_keys($array, "Nam")); //kết quả: array([0] => 0 [1] => 2 [2] => 3)

	$array = array("gioi-tinh" => array("Nam", "Nu"),
				   "mau-sac"  => array("xanh", "vang", "do"));
	print_r(array_keys($array)); //kết quả: array([0] => 'gioi-tinh' [1] => 'mau-sac')
?>

Hàm array_slice()

Công dụng: Cắt mảng một cách chính xác
Cú pháp: array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] )
Trong đó:

  • $array: Mảng gốc
  • $offset: vị trí bắt đầu cắt trong mảng gốc, nếu offset nhận giá trị âm sẽ tính trở lui kể từ phần tử kết thúc.
  • $length ( tùy chọn ): Số lượng phần tử sẽ cắt - nếu số lượng phần tử của mảng ít hơn $length thì sẽ chỉ cắt ra một số lượng phần tử có trong mảng, nếu đặt là số âm sẽ cắt từ vị trí $offset cho tới vị trí tính ngược từ phần tử kết thúc.
  •  $preserve_keys ( tùy chọn ) : mặc định sẽ tự động sắp xếp thứ tự các các khóa - nếu đặt là TRUE sẽ không sắp xếp lại thứ tự các khóa.

Ví dụ 8: 

<?php
	$arr = array(1, 2, 3, 4, 5);
	print_r(array_slice($arr, 2));
	//Kết quả: array([0] => 3 [1] => 4 [2] => 5)
	print_r(array_slice($arr, 2,2));
	//Kết quả: array([0] => 3 [1] => 4)
	print_r(array_slice($arr, 1,-1));
	//Kết quả: array([0] => 2 [1] => 3 [2] => 4)
	print_r(array_slice($arr, 1,-1, TRUE));
	//Kết quả: array([1] => 2 [2] => 3 [3] => 4)
?>

Hàm array_merge()

Công dụng: Trộn 1 hay nhiều mảng thành 1 mảng
Cú pháp: array array_merge ( array $array1 [, array $... ] )
Ví dụ 9:

<?php
	$arr1 = array(1, 2, 3);
	$arr2 = array('mot', 'hai', 'ba');
	print_r(array_merge($arr1,$arr2));
	//Kết quả: Array ( [0] => 1 [1] => 2 [2] => 3 [3] => mot [4] => hai [5] => ba )
?>

Hàm array_diff()

Công dụng: Lấy ra các giá trị của mảng gốc khác với 1 hoặc nhiều mảng so sánh khác
Cú pháp: array array_diff ( array $array1 , array $array2 [, array $... ] )
Trong đó:

  • $array1: Là mảng gốc dùng để so sánh
  • $array2: Là mảng so sánh với mảng $array1
    ....

Ví dụ 10: 

<?php
	$array1 = array(1, 2, 3, 4);
	$array2 = array(1, 5, 7);
	$result = array_diff($array1, $array2);
	print_r($result);
	//Kết quả: Array ( [1] => 2 [2] => 3 [3] => 4 )
?>

Hàm array_push()

Công dụng: Thêm 1 hoặc nhiều phần tử vào cuối mảng - giúp cho mảng trở thành stack ( ngăn xếp)
Cú pháp: int array_push ( array &$array , mixed $value1 [, mixed $... ] )
Trong đó:

  • $array: là mảng cần thêm phần tử ( một mảng mới )
  • $value1 ... là các giá trị của phần tử
  • Hàm trả ra chỉ số của phần tử mới thêm vào

Lưu ý:

  • Nếu chỉ thêm một phần từ vào mảng, sử dụng hàm array_push() tốt hơn sử dụng cú pháp $arr[] = ... 
  • Hàm sẽ báo lỗi cảnh báo nếu đối số thứ 1 không phải là một mảng

Ví dụ 11: Thêm phần tử '4' vào mảng có 3 phần tử 1, 2, 3

<?php
	$arr = array(1, 2, 3);
	print "Thêm vào cuối mảng: ".array_push($arr, 4)." phần tử "; //Kết quả: 4
	print_r($arr); //Kết quả:  Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )	
?>

Hàm array_pop()

Công dụng: Lấy ra phần tử ở cuối mảng, sắp xếp lại thứ tự mảng
Cú pháp: mixed array_pop ( array &$array )
Ví dụ 12

<?php
	$stack = array("Toan", "Ngu Van", "Vat Ly");
	$arr = array_pop($stack);
	print_r($stack); //Kết quả: Array ( [0] => Toan [1] => Ngu Van )
?>

Hàm array_column()

Công dụng: Lấy ra giá trị của một cột trong mảng 
Cú pháp: array array_column ( array $array , mixed $column_key [, mixed $index_key = null ] )
Trong đó:

  • $array: Là mảng nguồn
  • $column_key: tên của cột cần lấy giá trị có thể là số nguyên hoặc tên khóa
  • $index_key (tùy chọn): Là khóa được dùng là chỉ số cho mảng giá trị lấy ra
  • Gía trị trả về: Một mảng là giá trị của cột trong mảng nguồn

Ví dụ 13: 

<?php
	$arr = array(
	array("mon-hoc" => "Toan", "ma-so" => "t1"),
	array("mon-hoc" => "Ngu Van", "ma-so" => "nv1"),
	array("mon-hoc" => "Vat Ly", "ma-so" => "vly1")
	);
	print_r(array_column($arr,'mon-hoc'));
	//Kết quả: Array ( [0] => Toan [1] => Ngu Van [2] => Vat Ly )
	print_r(array_column($arr,'mon-hoc','ma-so'));
	//Kết quả: Array ( [t1] => Toan [nv1] => Ngu Van [vly1] => Vat Ly )
?>

Hàm current()

Công dụng: Lấy ra phần tử hiện tại của mảng ( đang trỏ tới - truy cập tới ) - mặc định sẽ là phần tử đầu mảng
Cú pháp: mixed current ( array &$array ) 

Hàm next()

Công dụng: Trả ra phần tử kế tiếp so với phần tử đang truy cập và trỏ tới phần tử đó
Cú pháp: mixed next ( array &$array )

Hàm prev()

Công dụng: Trả ra phần tử phía trước so với phần tử đang truy cập và trỏ tới phần tử đó
Cú pháp: mixed prev ( array &$array )

Hàm end()

Công dụng: Trả ra phần tử cuối mảng và trỏ tới cuổi mảng
Cú pháp: mixed end ( array &$array )
Ví dụ 14:

<?php
	$arr = array("Toan", "Ngu Van", "Vat Ly");	
	$mon_hoc = current($arr); // $mon_hoc = 'Toan'; 
	print $mon_hoc."<br>"; 
	$mon_hoc = next($arr);    // $mon_hoc = 'Ngu Van';
	print $mon_hoc."<br>";
	$mon_hoc = current($arr); // $mon_hoc = 'Ngu Van';
	print $mon_hoc."<br>";
	$mon_hoc = prev($arr);    // $mon_hoc = 'Toan';
	print $mon_hoc."<br>";
	$mon_hoc = end($arr);     // $mon_hoc = 'Vat Ly';
	print $mon_hoc."<br>";
	$mon_hoc = current($arr); // $mon_hoc = 'Vat Ly';
	print $mon_hoc."<br>";
	$arr = array();
	var_dump(current($arr)); // bool(false)
	$arr = array(array());
	var_dump(current($arr)); // array(0) { }
?>

Hàm array_reverse()

Công dụng: Đảo ngược vị trí các phần tử của mảng
Cú pháp: array array_reverse ( array $array [, bool $preserve_keys = false ] )
Ví dụ 15: 

<?php
	$arr = array("Toan", "Ngu Van", "Vat Ly");	
	print_r(array_reverse($arr));
	//Kết quả: Array ( [0] => Vat Ly [1] => Ngu Van [2] => Toan )
	print_r(array_reverse($arr,TRUE));
	//Kết quả: Array ( [2] => Vat Ly [1] => Ngu Van [0] => Toan )
?>

 




Bình luận:


thư viện php