Tags:
Category:
Tác giả:
Trong phần các kiểu dữ liệu (Data Types), mình có nói sơ qua về mảng nhưng do tính chất quan trọng của mảng trong lập trình PHP nên mình xin nói kỹ hơn ở bài viết này.
Mảng là một kiểu dữ liệu mà nó có thể chứa nhiều giá trị con bên trong. Hãy tưởng tượng như một mảng là một quyển sách, mỗi trang sách bên trong là giá trị (value) được đánh số bằng số trang (key).
Để tạo mảng, chúng ta sử dụng hàm array() trong PHP (Từ PHP 5.4 trở lên bạn chỉ cần viết giá trị trong cặp dấu [] cũng được). Ví dụ bên dưới là tạo một biến hứng mảng.
'; var_dump( $mang ); echo ''; ?>Kết quả bạn có như sau:
array(4) { [0]=> string(9) "WordPress" [1]=> string(3) "CSS" [2]=> string(3) "PHP" [3]=> string(10) "Javascript" }Và bạn thấy, chúng ta có một mảng có 4 giá trị (array(4)). Trong đó nó có 4 key đánh số từ [0] đến [3] cho 4 giá trị tương ứng. Mỗi giá trị bên trong nó sẽ hiển thị kèm theo tên kiểu dữ liệu. Như vậy bạn có thể hiểu, WordPress, CSS, PHP, Javascript là giá trị trong mảng $mang mà ta dump ra. Các key nó sẽ tự động gán khi khởi tạo mảng.
Để lấy giá trị trong mảng như ý muốn của mình, chúng ta sẽ lấy ra bằng cách viết tên biến kèm theo key cần lấy giá trị như sau:
Ở trên bạn đã làm quen với mảng cơ bản, và mặc định khi chúng ta khai báo giá trị vào mảng mà nó tự đánh số thứ tự cho các key bên trong thì ta gọi đó là mảng tuần tự. Nhưng trong nhiều trường hợp chúng ta có mảng quá bự, muốn tự đặt tên key cho dễ nhớ thì ta gọi đó là mảng không tuần tự.
Để khai báo tên key kèm giá trị, chúng ta chỉ việc viết giá trị là ‘tên_key' => 'giá_trị' vào mảng.
'WordPress', 'css' => 'CSS', 'php' => 'PHP', 25 => 100 ); echo ''; var_dump( $web ); echo ''; ?>
Tên key có thể là dữ liệu kiểu chuỗi, kiểu số tự nhiên, số trôi nổi, dữ liệu mảng.
Mảng đa chiều chỉ đơn giản là một mảng chứa nhiều giá trị mảng lồng bên trong, tức là nó vẫn có key nhưng giá trị lại là một mảng mới. Ví dụ:
array( 'wp' => 'WordPress', 'joomla' => 'Joomla', 'drupal' => 'Drupal', 'mt' => 'Magento' ), 'asp' => array( 'netnuke' => 'DotNetNuke', 'kentico' => 'Kentico CMS' ) ); echo ''; print_r($web); echo ''; ?>
Và để lấy giá trị của mảng đa chiều, bạn có thể sử dụng vòng lặp (chưa học tới) hoặc viết tên biến kèm theo tên key của mảng mẹ và tên key của mảng con như $web['php']['mt'].
Tips: Đối với mảng, bạn có thể dùng hàm print_r() để dump thay vì sử dụng hàm var_dump() nếu không cần xem loại kiểu dữ liệu của giá trị.
Khi làm việc với mảng, bạn có thể sẽ cần sử dụng một số hàm có sẵn trong PHP để thao tác với mảng. Dưới đây là một số hàm thông dụng để làm việc với mảng.
Xem thêm: Danh sách các hàm làm việc với mảng
Hàm sizeof() được sử dụng để in ra tổng số phần tử có bên trong một mảng. Lưu ý là nó không thể đếm được toàn bộ phần tử trong mảng đa chiều.
'; echo 'Có '. sizeof($name) . ' cái tên.'; echo ''; ?>Hàm array_values() sẽ rất có ích nếu như bạn muốn tạo ra một mảng mới và mảng mới này sẽ chứa toàn bộ giá trị của mảng được sử dụng trong hàm này.
'Thạch', 'age' => '23', 'race' => 'Human', 'Weapon' => 'Rocket' ); $thach = array_values( $hero ); print_r( $thach ); ?>Nếu như hàm array_values() sẽ bóc toàn bộ giá trị trong mảng bỏ vào một mảng mới thì hàm array_keys() sẽ bóc toàn bộ key trong mảng bỏ vào một mảng mới.
'Thạch', 'age' => '23', 'race' => 'Human', 'Weapon' => 'Rocket' ); $class = array_keys( $hero ); print_r( $class ); ?>Đây là một hàm mà nó thường dùng kèm với vòng lặp (thường là vòng lặp while) để in ra một cặp key và giá trị của nó. Thực ra cái này cũng không thường được sử dụng cho lắm nhưng mà nó có thể giúp bạn sử dụng cùng lúc cả key và giá trị linh hoạt.
'Thạch', 'age' => '23', 'race' => 'Human', 'Weapon' => 'Rocket' ); while( list($key, $value) = each( $hero )) { echo "$key - $valueHàm này được sử dụng để đảo ngược thứ tự giá trị trong mảng.
'; print_r ( array_reverse( $number ) ); echo '' ?>Hàm này được sử dụng để gộp các dữ liệu của hai hoặc nhiều mảng lại với nhau.
'; print_r( array_merge( $number, $name ) ); echo ''; ?>Hàm này có tác dụng sẽ lấy toàn bộ giá trị trong mảng và có thể cách nhau bằng một ký tự nhất định. Ví dụ dưới đây là lấy toàn bộ giá trị ra ngoài và cách nhau bởi dấu phẩy.
Ngoài ra hàm này còn có một cái tên khác nữa đó là implode().
Nếu bạn cần thiết lập lại thứ tự các giá trị bên trong mảng thì có thể sử dụng các hàm sau đây:
Đấy, về khái niệm mảng trong PHP thì chỉ có bấy nhiêu thôi nhưng nó quan trọng là vì nó được sử dụng nhiều và rất linh hoạt trong nhiều trường hợp. Ví dụ khi bạn sử dụng nhiều hàm trong WordPress như get_terms() chẳng hạn, nó sẽ trả về giá trị kiểu mảng và lúc đó bạn sẽ làm việc với nó để lấy dữ liệu mà bạn cần. Về vấn đề này mình sẽ giải thích kỹ hơn ở bài các hàm thông dụng trong WordPress.
Bài giải
'Học PHP cơ bản', 'content' => 'Nội dung học PHP cơ bản', 'tag' => array('php','php cơ bản'), 'category' => array('PHP', 'WordPress'), 'author' => 'Thạch Phạm' ); ?>Tags:
Category:
Tác giả:
Content retrieved from:
https://thachpham.com/wordpress/wordpress-development/php-co-ban-du-lieu-mang-array.html.
Ý KIẾN THÀNH VIÊN