PHP-cheat-sheet-VI-Vietsub

1. Mảng - Array

Trong PHP , Array là một kiểu cấu trúc dữ liệu cho phép ta lưu trữ nhiều phần từ có kiểu dữ liệu tương tự dưới một biến duy nhất, do đó giúp chúng ta tiết kiệm được nhiều công sức tạo một biến khác cho mỗi dữ liệu.

Có thể truy cập vào mảng bằng chỉ mục indexkeys trong mảng đó.

1. Indexed or Numeric Arrays:

Là loại mảng có thể được sử dụng để lưu trữ bất kỳ loại pần tử nào, nhưng chỉ mục luôn luôn là số (number). Theo mặc định, các index bắt đầu từ con số 0. Các mảng này được tạo theo 2 cách khác nhau:

<?php
// One way to create an indexed array
$name_one = array("AAA", "BBB", "CCC", "DDD", "EEE");

// Accessing the elements directly
echo "Accessing the 1st array elements directly:\n";
echo $name_one[2], "\n";
echo $name_one[0], "\n";
echo $name_one[4], "\n";

// Second way to create an indexed array
$name_two[0] = "ZAc";
$name_two[1] = "ANT";
$name_two[2] = "RAM";
$name_two[3] = "SAL";
$name_two[4] = "RAG";

// Accessing the elements directly
echo "Accessing the 2nd array elements directly:\n";
echo $name_two[2], "\n";
echo $name_two[0], "\n";
echo $name_two[4], "\n";

?>

2. Associate Arrays:

Các mảng này tương tự như các mảng được lập chỉ mục nhưng thay vì lưu trữ tuyến tính (linear storage), mọi giá trị có thể được gán bằng khoá do người dùng xác định (user-defined) bằng khoá do người dùng xác định thuộc loại chuỗi.

<?php
// One way to create an associative array
$name_one = array("Zack"=>"Zara", "Anthony"=>"Any", 
				"Ram"=>"Rani", "Salim"=>"Sara", 
				"Raghav"=>"Ravina");

// Second way to create an associative array
$name_two["zack"] = "zara";
$name_two["anthony"] = "any";
$name_two["ram"] = "rani";
$name_two["salim"] = "sara";
$name_two["raghav"] = "ravina";

// Accessing the elements directly
echo "Accessing the elements directly:\n";
echo $name_two["zack"], "\n";
echo $name_two["salim"], "\n";
echo $name_two["anthony"], "\n";
echo $name_one["Ram"], "\n";
echo $name_one["Raghav"], "\n";

?>

3. Multidimensional Arrays:

Mảng đa chiều là những mảng lưu trữ một mảng khác ở mỗi chỉ mục thay vì một phần tử đơn lẽ. Nói cách khác, chúng ta định nghĩa mảng đa chiều là một màng của các mảng.

Như mọi phần tử trong mảng này có thể là một mảng chứa các mảng con khác bên trong. Mảng hoặc mảng con trong mảng đa chiều có thể được truy cập nhiều chiều khác nhau.

<?php
// Defining a multidimensional array
$favorites = array(
	array(
		"name" => "Dave Punk",
		"mob" => "5689741523",
		"email" => "davepunk@gmail.com",
	),
	array(
		"name" => "Monty Smith",
		"mob" => "2584369721",
		"email" => "montysmith@gmail.com",
	),
	array(
		"name" => "John Flinch",
		"mob" => "9875147536",
		"email" => "johnflinch@gmail.com",
	)
);

// Accessing elements
echo "Dave Punk email-id is: " . $favorites[0]["email"], "\n";
echo "John Flinch mobile number is: " . $favorites[2]["mob"];

?>
Id email của Dave Punk : davepunk@gmail.com
Số điện thoại di động của John Flinch : 9875147536

Tạo ra một Array

1. array() function

array() là một hàm có sẵn trong PHP, được sử dụng để tạo một mảng. Có 3 loại mảng được tạo bằng func() array():

Indexed array: Các khóa của Indexed Array là các số nguyên bắt đầu từ 0

//Syntax:
 array( val1, val2, val3, ... )

Associative array: Các khóa của mảng kết hợp là các chuỗi. Và bạn sử dụng mảng kết hợp khi bạn muốn truy cập các phần tử bằng các phím chuỗi.

Syntax:
array( key=>val, key=>val, key=>value, ... )

Multidimensional array:

array( array( val11, val12, ...)
           array( val21, val22, ...)
           ... )

Cú pháp: ```php <?php

$empty_array = array();


#### 2. Sử dụng `JSON notation []`.
* Dấu [] - Curly Brace - còn được gọi là JSON Notation
```php
<?php
$empty_array = [];

Xuất một mảng ra màn hình

Có 2 cách để xuất một mảng ra khỏi màn hình

Array Demo "; print_r($data); var_dump($data); echo ""; ?>

### Lấy độ dài mảng
`count()` function dùng để lấy độ dài của mảng:
```php
<?php
$scores = [1, 2, 3, 4, 5];
echo count($scores);
5

2. PHP Array sort() function:

Bảng sau đây mô tả các hàm sắp xếp (sort functions) trong PHP và mô tả vấn đề mà chúng giải quyết:

Hàm Mô tả
sort() Sắp xếp mảng Indexed arrays theo thứ tự tăng dần.
rsort() Sắp xếp mảng Indexed arrays theo thứ tự giảm dần.
asort() Sắp xếp Associative theo thứ tự tăng dần dựa trên values của các phần tử.
ksort() Sắp xếp Associativetheo thứ tự tăng dần dựa trên key của các phần tử.
arsort() Sắp xếp Associativetheo thứ tự giảm dần dựa trên values của các phần tử.
krsort() Sắp xếp Associative theo thứ tự giảm dần dựa trên key của các phần tử.

Cú pháp của các hàm sort():

// sort() và rsort()
sort(array $array, int $sort_flags = SORT_REGULAR)
rsort(array $array, int $sort_flags = SORT_REGULAR)
//asort() và arsort()
asort(array $array, int $sort_flags = SORT_REGULAR)
arsort(array $array, int $sort_flags = SORT_REGULAR)
ksort(array $array, int $sort_flags = SORT_REGULAR)
krsort(array $array, int $sort_flags = SORT_REGULAR)

Ví dụ về 6 func() Sort Array ;
Ví dụ về Sort Flag;