/ / Php cơ bản / Comment (0)

Mảng trong PHP

Mảng là một kiểu biến đặc biệt, nó có thể lưu trữ nhiều giá trị trong một biến duy nhất.

– Mảng trong php cho phép chúng ta lưu trữ, sắp xếp thứ tự và truy cập nhiều giá trị với một tên. Và cần lưu ý rằng một phần tử mảng luôn bắt đầu với giá trị là 0.

Mảng số nguyên (Liên tục)

Mảng số nguyên là mảng có chỉ số (index or key) là ở dạng số.

a.Cách khai báo mảng số nguyên.

– Chúng ta có 3 cách để khai báo mảng số nguyên, ví dụ:

+ Cách 1:

<?php
    $color = array(‘red’, ‘blue’, ‘black’);
?>

+ Cách 2:

<?php
    $color[0] = ‘red’;
    $color[1] = ‘blue’;
    $color[2] = ‘black’;
?>

+ Cách 3:

<?php
    $color[] = ‘red’;
    $color[] = ‘blue’;
    $color[] = ‘black’;
?>

b.In phần tử trong mảng số nguyên

– In 1 phần tử trong mảng số nguyên: để lấy giá trị của 1 phần tử trong mảng số nguyên chúng ta cần truy cập vào đúng khóa (key) của phần tử đó.
Ví dụ (với mảng được khai báo 1 trong 3 cách ở trên):

  echo $color[0]; //kết quả: red
  echo $color[1]; // kết quả: blue
  ......
  echo $color[n]; //trong đó n là khóa(key) của phần tử muốn truy cập

– In tất cả phần tử trong mảng số nguyên: Để in tất cả các phần tử trong mảng số nguyên ta cần duyệt từng phần tử trong mảng bằng vòng lặp for hoặc foreach

Ví dụ sử dụng vòng lặp FOR (với mảng được khai báo 1 trong 3 cách ở trên):

  for($i=0;$i<count($color);$i++)
  {
     echo $color[$i];
  }

+ Hàm count() lấy tổng số phần tử có trong mảng,vì phần tử đầu tiên của mảng nằm ở vị trí 0 (key = 0) lên chúng ta cần lặp từ biến i = 0;

Ví dụ sử dụng vòng lặp FOREACH (với mảng được khai báo 1 trong 3 cách ở trên):

  foreach($color as $cl)
  {
    echo $cl;
  }

Mảng kết hợp

– Mảng kết hợp là một mảng mà chỉ số (index or key) là một giá trị, chỉ số có thể là chuỗi hoặc số. Khi lưu trữ dữ liệu vào các phần tử mảng, các phần tử đó được đặt tên cụ thể.
– Mẹo: các bạn cần nhớ phía bên trái là khóa (key) của phần tử và bên phải là giá trị của phần tử trong mảng
a.Cách khai báo mảng kết hợp.
– Chúng ta có 2 cách để khai báo mảng số nguyên, ví dụ:
+ Cách 1:

$color = array(‘color1’ => ‘red’,
               ‘color2’ => ‘blue’,
               ‘color3’ =>  ‘black’);

+ Cách 2:

$color['color1']   = ‘red’;
$color['color2']   = ‘blue’;
$color['color3']   = ‘black’;

b.In các phần tử trong mảng kết hợp.
– In 1 phần tử trong mảng kết hợp: để lấy giá trị của 1 phần tử trong mảng kết hợp chúng ta cần truy cập vào đúng khóa (key) của phần tử đó.

Ví dụ (với mảng được khai báo 1 trong 2 cách ở trên):

  echo $color['color1']; //kết quả: red
  echo $color['color2']; // kết quả: blue
  ......
  echo $color[n]; //trong đó n là khóa(key) của phần tử muốn truy cập

– In tất cả phần tử trong mảng kết hợp: Để in tất cả các phần tử trong mảng kết hợp ta cần duyệt từng phần tử trong mảng bằng vòng lặp foreach

Ví dụ (với mảng được khai báo 1 trong 2 cách ở trên):

  foreach($color as $key => $value)
  {
      echo $color[$key];
  }

Vòng lặp trên sẽ lặp lần lượt từng phần tử trong mảng,và $key chính là khóa(key) của phần từ và $value chính là giá trị tương ứng với khóa đó.Với ví dụ trên thì :
– vòng lặp đầu tiên thì $key = ‘color1’$value = ‘red’;
– vòng lặp thứ 2 thì $key = ‘color2’$value = ‘blue’;
– vòng lặp thứ 3 thì $key = ‘color3’$value = ‘black’;

Mảng đa chiều

– Mảng đa chiều là mảng mà mỗi phần tử trong mảng chính có thể là một mảng và mỗi phần tử trong mảng con cũng có thể là một mảng. Chúng ta thường gọi là mảng lồng.

a.Cách khai báo mảng đa chiều.
– Chúng ta có 2 cách để khai báo mảng đa chiều, ví dụ:
+ Cách 1:

$students[‘01’] = array(‘name’ => ‘nobita’,
                        ‘age’  => ‘20’);
$students[‘02’] = array(‘name’ => ‘xuka’,
                       ‘age’   => ‘21’,
                       ‘class’ => ‘cnt49’);

+ Cách 2:

$students = array(
           ‘01’ => array(‘name’ => ‘nobita’,
                         ‘age’   => ‘20’),
           ’02’ => array(‘name’ => ‘xuka’,
                         ‘age’   => ‘21’,
                         ‘class’ => ‘cnt49’)
           );

b.In các phần tử trong mảng đa chiều.
– In 1 phần tử trong mảng đa chiều: để lấy giá trị của 1 phần tử trong mảng đa chiều chúng ta cần truy cập vào đúng khóa (key) của phần tử đó.

Ví dụ lấy tên của sinh viên đầu tiên(với mảng sinh viên được khai báo 1 trong 2 cách ở trên):

  $sinhvien1 = $students [‘01’];
  echo  $sinhvien1[‘name’]; //kết quả: nobita
  //tương tự như câu lệnh sau
  echo $students [‘01’][‘name’]; //kết quả: nobita

Để lấy được tên của sinh viên thì đầu tiên chúng ta cần biết sinh viên đầu tiên có khóa (key) là gì?ở ví dụ trên thì khóa của sinh viên đầu tiên là 01, tiếp đó ta cần xem khóa chứa tên của sinh viên là gì?và với ví dụ trên thì khóa chứa tên sinh viên chính là “name”;

– In tất cả phần tử trong mảng đa chiều: Để in tất cả các phần tử trong mảng kết hợp ta cần sử dụng vòng lặp foreach

Ví dụ (với mảng sinh viên được khai báo 1 trong 2 cách ở trên):

    foreach($students as $key => $value)
    {
           echo ‘Sinh viên ’.$key.’ :’;
           echo ‘Tên :’. $value[‘name’];
           echo ‘Tuổi:’. $value[‘age’];}
    }

Với vòng lặp trên thì $key chính là khóa và $value chính là giá trị của phần tử đang duyệt tới trong mảng.Mình xin giải thích qua với vòng lặp đầu tiên của mảng trên
– Vòng lặp đầu tiên: $key = ’01’ , và $value có giá trị là 1 mảng dữ liệu:

array(‘name’ => ‘nobita’,
      ‘age’   => ‘20’)

Lúc này $value lại trở thành 1 mảng kết hợp,và lúc này chúng ta truy cập tới phần tử trong mảng này y như truy cập phần tử trong mảng kết hợp phía trên.
– Tương tự với vòng lặp 2 $key = ’02’$value có giá trị là 1 mảng kết hợp

array(‘name’ => ‘xuka’,
      ‘age’   => ‘21’,
      ‘class’ => ‘cnt49’)

Chú ý: Đối với mảng nào cũng vậy các bạn cần nắm rõ đâu là khóa(key) của mảng và đâu là giá trị tương ứng của khóa đó.Khi truy cập vào phần tử thì chỉ cần truy cập vào đúng khóa đó.Các bạn có thể liên tưởng mỗi ngôi nhà có 1 địa chỉ riêng,muốn tới ngôi nhà nào thì chỉ cần tới địa chỉ số nhà đó.Mảng trong php cũng tương tự như vậy.

Xem cấu trúc 1 mảng trong php

– Để có thể duyệt mảng hay truy cập vào các phần tử trong mảng thì bạn cân biết được cấu trúc của mảng đó xem đó là mảng gì,để làm được việc này các bạn có thể sử dụng hàm print_r()

Ví dụ:

$color = array(‘red’, ‘blue’, ‘black’);
echo '<pre>';
          print_r($color);
echo '</pre>';

Ở ví dụ trên mình cho hiển thị ra cặp thẻ pre nhằm xem cấu trúc mảng dễ nhìn hơn

Các hàm về mảng hay sử dụng trong PHP

  1. count() : Hàm đếm số phần tử trong mảng,trả về số nguyên
  2. array_merge($mang1, $mang2): Hàm gộp 2 mảng thành 1 mảng duy nhất
  3. array_slice($mang, vị trí tách, số lượng tách): Hàm tách 1 mảng
  4. sort($mảng): Hàm sắp xếp mảng
  5. ksort($mảng): Sắp xếp mảng theo chỉ mục
  6. in_array(giátrịtìm, $mảng) : Hàm tìm phần tử có tồn tại trong mảng hay không
  7. array_values ($mảng) :Trả về một mảng liên tục bao gồm các phần tử có giá trị là giá trị lấy từ các phần tử của mảng
  8. is_array($array): Trảvề TRUE nếu $array là 1 mảng và ngượ clại
  9. array_search($value, $array):Trả về key của phần tử được tìm thấy đầu tiên trong mảng
  10. array_unique($array): Loại bỏ giá trị trùng lặp trong mảng,key của phần tử vẫn được giữ nguyên
  11. implode($str,$array): Chuyển đổi mảng $array thành 1 chuỗi các phần tử cách nhau vởi ký tự $str
  12. serialize($array): Chuyễn mảng,đối tượng,chuỗi thành chuỗi đặc biệt để lưu vào CSDL
  13. unserialize($str): Chuyễn chuỗi đặc biệt về định dạng ban đầu trước khi sử dụng hàm serialize

 



03/09/2014
Written by nobitacnt

Trong bài viết không tránh khỏi những câu từ chưa chính xác,mong nhận được sự góp ý để website hoàn thiện hơn.Nếu thấy bài viết có ích với bạn hãy like và share để ủng hộ nhé :D.

Bài viết chùng chuyên mục

Gửi bình luận

Giới thiệu

Mình tạo ra blog này với mong muốn chia sẻ và học hỏi kinh nghiệm trong quá trình thiết kế website. Website đang trong quá trình phát triển chân thành cảm ơn mọi sự góp ý của các bạn để làm cho website ngày càng hoàn thiên.

DMCA.com Protection Status
Theo dõi qua Email

Tổng hợp các bài viết về

Hoc php - CodeIgniter Framework - Laravel Framework - PHP va MYSQL