Rate this post

Mảng trong PHP là một kiểu dữ liệu cho phép lưu trữ nhiều giá trị cùng một lúc, mỗi giá trị được gán với một chỉ mục (index) duy nhất. Các giá trị trong mảng có thể là bất kỳ kiểu dữ liệu nào, bao gồm cả các mảng khác. Mảng trong PHP có thể được tạo ra bằng các cặp giá trị key-value hoặc sử dụng các hàm như array(), range()….

Các phần tử trong mảng có thể truy xuất thông qua chỉ mục của chúng. Mảng có thể là mảng đa chiều và có thể chứa bất kỳ số lượng phần tử nào.

Hãy tưởng tượng mảng như một hộp đựng các ô, trong đó mỗi ô có thể chứa một loại sôcôla (giá trị) khác nhau. Hộp sôcôla này, với các ngăn nhỏ bên trong, là hình ảnh ẩn dụ để mô tả cách mảng hoạt động: hộp là mảng còn các viên sôcôla chính là các giá trị được lưu trữ.

Mảng chỉ số (Numeric Array)

Mảng chỉ số (Numeric Array) trong PHP là một cấu trúc dữ liệu quan trọng, cho phép lưu trữ và truy xuất dữ liệu dựa trên các chỉ số số học. Điều này rất hữu ích trong việc quản lý các tập hợp dữ liệu mà thứ tự là quan trọng. Mỗi phần tử trong mảng có một chỉ số duy nhất, được bắt đầu từ 0 và tăng dần. Điều này giúp cho việc truy cập và cập nhật dữ liệu trở nên dễ dàng và nhanh chóng.

Để minh họa thêm, xem xét ví dụ sau về việc tạo và sử dụng một mảng chỉ số trong PHP:

// Tạo mảng chỉ số với các giá trị khởi tạo
$so_nguyen = array(10, 20, 30, 40, 50);

// Truy xuất và in ra giá trị tại vị trí chỉ số 2
echo $so_nguyen[2]; // Kết quả: 30

// Thay đổi giá trị tại vị trí chỉ số 4
$so_nguyen[4] = 60;

// Thêm giá trị mới vào cuối mảng
$so_nguyen[] = 70; // PHP tự động gán chỉ số tiếp theo cho giá trị mới

// Duyệt qua mảng và in ra tất cả các giá trị
foreach ($so_nguyen as $gia_tri) {
    echo $gia_tri . ' ';
}
// Kết quả: 10 20 30 40 60 70

Trong ví dụ trên, mảng $so_nguyen chứa một loạt các số nguyên. Các phần tử của mảng có thể dễ dàng được truy xuất và thay đổi thông qua chỉ số của chúng. Ví dụ, echo $so_nguyen[2]; in ra giá trị thứ ba trong mảng (đếm từ 0), là 30. Để thêm một giá trị mới vào cuối mảng, chỉ cần sử dụng $so_nguyen[] = 70;, PHP sẽ tự động gán chỉ số phù hợp cho giá trị mới này.

Mảng chỉ số cung cấp một cách linh hoạt và hiệu quả để lưu trữ và quản lý các tập hợp dữ liệu có thứ tự. Sử dụng mảng này giúp dễ dàng thực hiện các thao tác như thêm, xóa hoặc sửa đổi các phần tử mảng.

Mảng kết hợp (Associative Array)

Mảng kết hợp (Associative Array) trong PHP là một công cụ hữu ích cho việc lưu trữ và quản lý dữ liệu với các khóa mô tả rõ ràng. Trong mảng kết hợp, mỗi giá trị được liên kết với một khóa duy nhất, thay vì sử dụng chỉ số số như trong mảng chỉ số. Điều này giúp dễ dàng truy cập và quản lý dữ liệu, đặc biệt khi làm việc với thông tin có cấu trúc hoặc cần được mô tả cụ thể.

Cú pháp tạo mảng kết hợp rất đơn giản: $ten_mang = array('key' => value);. Mỗi ‘key’ đại diện cho một nhãn mô tả và ‘value’ là giá trị tương ứng với nhãn đó. Ví dụ sau minh họa cách tạo và sử dụng mảng kết hợp:

// Tạo mảng kết hợp lưu trữ thông tin về một nhóm sách
$sach = array(
    "Khoa học" => "Bí Ẩn Vũ Trụ",
    "Tiểu thuyết" => "Cuốn theo chiều gió",
    "Lịch sử" => "Lịch Sử Thế Giới"
);

// Truy xuất giá trị sử dụng khóa
echo $sach["Khoa học"]; // Kết quả: Bí Ẩn Vũ Trụ

// Thêm một giá trị mới vào mảng
$sach["Kỹ thuật"] = "Lập Trình PHP";

// Duyệt qua mảng và in ra tất cả các khóa và giá trị
foreach ($sach as $the_loai => $ten_sach) {
    echo "Thể loại: $the_loai, Tên sách: $ten_sach<br>";
}

Trong ví dụ trên, mảng $sach chứa thông tin về các cuốn sách, với thể loại là khóa và tên sách là giá trị. Bạn có thể thêm, xóa hoặc sửa đổi các phần tử trong mảng một cách dễ dàng. Mảng kết hợp thường được sử dụng trong việc xử lý dữ liệu từ cơ sở dữ liệu, quản lý cấu hình, và nhiều tình huống khác nơi mà quản lý dữ liệu dựa trên khóa là quan trọng.

Mảng kết hợp không chỉ giúp làm cho code trở nên rõ ràng, dễ đọc hơn mà còn cung cấp một cách mạnh mẽ để tổ chức và truy cập dữ liệu. Sử dụng mảng kết hợp, lập trình viên có thể xây dựng các cấu trúc dữ liệu phức tạp, từ đó tăng cường khả năng đọc và duy trì code.

Mảng đa chiều trong PHP là một công cụ mạnh mẽ, cho phép bạn tạo ra các cấu trúc dữ liệu phức tạp, lồng ghép nhiều mảng với nhau. Mảng đa chiều thường được sử dụng để lưu trữ và tổ chức dữ liệu có nhiều lớp hoặc phân loại, như dữ liệu từ cơ sở dữ liệu, thông tin phân cấp, hoặc như trong ví dụ về danh sách phim theo thể loại.

Để mở rộng ví dụ trên với mảng đa chiều, xem xét việc thêm thông tin chi tiết hơn cho mỗi bộ phim, chẳng hạn như năm phát hành và đạo diễn:

$phims = array(
    "Hành động" => array(
        array(
            "tieuDe" => "Jonh Wick",
            "nam" => 2014,
            "daoDien" => "Chad Stahelski"
        ),
        array(
            "tieuDe" => "Người vận chuyển",
            "nam" => 2002,
            "daoDien" => "Louis Leterrier"
        ),
        array(
            "tieuDe" => "Nhiệm vụ bất khả thi",
            "nam" => 1996,
            "daoDien" => "Brian De Palma"
        )
    ),
    "Viễn tưởng" => array(
        array(
            "tieuDe" => "Endgame",
            "nam" => 2019,
            "daoDien" => "Anthony và Joe Russo"
        ),
        array(
            "tieuDe" => "Infinity War",
            "nam" => 2018,
            "daoDien" => "Anthony và Joe Russo"
        )
    ),
    // Các thể loại khác
);

Trong ví dụ này, mỗi phim không chỉ được lưu trữ với tên phim mà còn kèm theo năm phát hành và đạo diễn. Điều này giúp dữ liệu trở nên rõ ràng và có cấu trúc hơn, đồng thời cung cấp thông tin chi tiết hơn cho mỗi bộ phim.

Bạn cũng có thể truy xuất thông tin từ mảng đa chiều này bằng cách sử dụng các vòng lặp lồng nhau. Ví dụ:

foreach ($phims as $theLoai => $danhSachPhim) {
    echo "Thể loại: $theLoai <br>";
    foreach ($danhSachPhim as $phim) {
        echo "- " . $phim["tieuDe"] . ", Đạo diễn: " . $phim["daoDien"] . ", Năm: " . $phim["nam"] . "<br>";
    }
}

Ở đây, vòng lặp ngoài duyệt qua mỗi thể loại phim, trong khi vòng lặp bên trong duyệt qua từng bộ phim trong thể loại đó. Sử dụng mảng đa chiều giúp việc quản lý và truy xuất dữ liệu trở nên linh hoạt và hiệu quả hơn, đặc biệt khi làm việc với các tập dữ liệu lớn và phức tạp.

Mảng đa chiều trong PHP

Mảng đa chiều trong PHP là một công cụ mạnh mẽ, cho phép bạn tạo ra các cấu trúc dữ liệu phức tạp, lồng ghép nhiều mảng với nhau. Mảng đa chiều thường được sử dụng để lưu trữ và tổ chức dữ liệu có nhiều lớp hoặc phân loại, như dữ liệu từ cơ sở dữ liệu, thông tin phân cấp, hoặc như trong ví dụ về danh sách phim theo thể loại.

Để mở rộng ví dụ trên với mảng đa chiều, xem xét việc thêm thông tin chi tiết hơn cho mỗi bộ phim, chẳng hạn như năm phát hành và đạo diễn:

$phims = array(
    "Hành động" => array(
        array(
            "tieuDe" => "Jonh Wick",
            "nam" => 2014,
            "daoDien" => "Chad Stahelski"
        ),
        array(
            "tieuDe" => "Người vận chuyển",
            "nam" => 2002,
            "daoDien" => "Louis Leterrier"
        ),
        array(
            "tieuDe" => "Nhiệm vụ bất khả thi",
            "nam" => 1996,
            "daoDien" => "Brian De Palma"
        )
    ),
    "Viễn tưởng" => array(
        array(
            "tieuDe" => "Endgame",
            "nam" => 2019,
            "daoDien" => "Anthony và Joe Russo"
        ),
        array(
            "tieuDe" => "Infinity War",
            "nam" => 2018,
            "daoDien" => "Anthony và Joe Russo"
        )
    ),
    // Các thể loại khác
);

Trong ví dụ này, mỗi phim không chỉ được lưu trữ với tên phim mà còn kèm theo năm phát hành và đạo diễn. Điều này giúp dữ liệu trở nên rõ ràng và có cấu trúc hơn, đồng thời cung cấp thông tin chi tiết hơn cho mỗi bộ phim.

Bạn cũng có thể truy xuất thông tin từ mảng đa chiều này bằng cách sử dụng các vòng lặp lồng nhau. Ví dụ:

foreach ($phims as $theLoai => $danhSachPhim) {
    echo "Thể loại: $theLoai <br>";
    foreach ($danhSachPhim as $phim) {
        echo "- " . $phim["tieuDe"] . ", Đạo diễn: " . $phim["daoDien"] . ", Năm: " . $phim["nam"] . "<br>";
    }
}

Ở đây, vòng lặp ngoài duyệt qua mỗi thể loại phim, trong khi vòng lặp bên trong duyệt qua từng bộ phim trong thể loại đó. Sử dụng mảng đa chiều giúp việc quản lý và truy xuất dữ liệu trở nên linh hoạt và hiệu quả hơn, đặc biệt khi làm việc với các tập dữ liệu lớn và phức tạp.

Tại sao nên sử  dụng mảng trong php ?

  1. Khả năng lưu trữ nhiều giá trị cùng một lúc: Mảng trong PHP cho phép lưu trữ nhiều giá trị cùng một lúc, giúp cho việc quản lý dữ liệu trở nên dễ dàng hơn.
  2. Tìm kiếm và truy xuất dữ liệu dễ dàng: Với mảng, bạn có thể dễ dàng tìm kiếm và truy xuất dữ liệu bằng cách sử dụng chỉ mục của phần tử.
  3. Sắp xếp dữ liệu: Mảng có rất nhiều hàm sắp xếp dữ liệu giúp cho việc xử lý dữ liệu trở nên dễ dàng hơn.
  4. Gán giá trị cho nhiều biến: Mảng cho phép gán giá trị cho nhiều biến cùng một lúc, giúp cho việc làm việc với nhiều biến trở nên dễ dàng hơn.
  5. Tiết kiệm thời gian và tài nguyên: Sử dụng mảng giúp tiết kiệm thời gian và tài nguyên khi so sánh, tìm kiếm và xử lý dữ liệu, đặc biệt là với số lượng dữ liệu lớn.
  6. Tương thích với các hàm xử lý mảng: PHP cung cấp rất nhiều hàm xử lý mảng như sort(), array_keys(), array_values()… giúp cho việc xử lý dữ liệu trở nên dễ dàng hơn.
  7. Tương thích với các cấu trúc vòng lặp: Mảng là một kiểu dữ liệu rất thông dụng trong PHP, vì vậy các cấu trúc vòng lặp như for, while, foreach đều hỗ trợ việc duyệt qua các phần tử trong mảng một cách dễ dàng.
  8. Tương thích với các hàm xử lý chuỗi: Mảng cũng có thể được chuyển thành chuỗi và ngược lại thông qua các hàm như implode() và explode().
  9. Tương thích với các hàm xử lý JSON: Mảng có thể được chuyển thành dạng JSON và ngược lại thông qua các hàm như json_encode() và json_decode().

Sử dụng mảng trong php như thế nào ? 

Sử dụng mảng trong PHP rất đơn giản. Có hai cách để tạo một mảng:

  1. Sử dụng cặp dấu ngoặc vuông []:
$myArray = ["apple", "banana", "cherry"];
  1. Sử dụng hàm array():
$myArray = array("apple", "banana", "cherry");

Cách truy cập các phần tử trong mảng :

$myArray = ["apple", "banana", "cherry"];

echo $myArray[0]; // "apple"

echo $myArray[1]; // "banana"

echo $myArray[2]; // "cherry"

Cách thêm, sửa, xóa phần tử trong mảng :

$myArray = ["apple", "banana", "cherry"];

// Thêm phần tử

$myArray[] = "orange";

// Sửa phần tử

$myArray[1] = "kiwi";

// Xóa phần tử

unset($myArray[2]);

Các hàm thao tác với mảng như count(), sort(), array_push(), array_pop(), array_shift(), array_unshift(), array_keys(), array_values(), array_merge(), array_diff(), array_intersect()…

Có rất nhiều hàm và cách khác nhau để sử dụng mảng trong PHP, tùy thuộc vào mục đích của bạn. Nếu có thắc mắc gì về cách sử dụng mảng trong PHP, hãy hỏi thêm.

Những lưu ý khi sử dụng mảng trong php 

  1. Mảng trong PHP là các biến đặc biệt, chúng chứa nhiều giá trị.
  2. Các phần tử của mảng được sắp xếp theo chỉ số (hoặc key), mặc định là số nguyên từ 0.
  3. Các phần tử của mảng có thể là bất kỳ kiểu dữ liệu nào, ví dụ như số, chuỗi, mảng, đối tượng, …
  4. Mảng có thể là mảng 1 chiều hoặc mảng 2 chiều, tùy thuộc vào cấu trúc dữ liệu cần thiết.
  5. Mảng có thể là mảng liên kết, mảng kết hợp, mảng đa chiều…
  6. Chú ý khi sử dụng các hàm xử lý mảng, nếu muốn thay đổi giá trị của mảng gốc thì phải gán lại giá trị trả về từ hàm đó cho mảng gốc.
  7. Chú ý với mảng có chứa các giá trị 0, null, false, nếu muốn giữ lại chúng thì cần sử dụng hàm callback để kiểm tra giá trị hoặc sử dụng array_diff() để loại bỏ các giá trị này trước khi sử dụng array_filter()
  8. Nếu truy cập một phần tử mảng không tồn tại, PHP sẽ trả về giá trị null, điều này có thể gây ra lỗi nếu không kiểm tra trước khi sử dụng giá trị đó.
  9. Khi sử dụng hàm foreach để duyệt mảng, chú ý rằng nếu muốn thay đổi giá trị của phần tử trong mảng thì phải gán lại giá trị mới cho biến được gán bằng giá trị của phần tử đó.
  10. Mảng trong PHP không có giới hạn kích thước, nhưng việc sử dụng mảng quá lớn có thể gây ra tình trạng quá tải và giảm hiệu suất.

Ví dụ 

  1. Loại bỏ các phần tử có giá trị rỗng trong mảng:
$myArray = ["apple", "banana", "", "cherry"];

$filteredArray = array_filter($myArray);

print_r($filteredArray);

Kết quả:

Array ( [0] => apple [1] => banana [3] => cherry )

  1. Loại bỏ các phần tử có giá trị nhỏ hơn 5:
$myArray = [2, 3, 5, 8, 12];

$filteredArray = array_filter($myArray, function($val){

  return $val >= 5;

});

print_r($filteredArray);

Kết quả:

Array ( [2] => 5 [3] => 8 [4] => 12 )

  1. Loại bỏ các phần tử có chứa ký tự số trong mảng chuỗi:
$myArray = ["apple1","banana2","cherry3"];

$filteredArray = array_filter($myArray, function($val){

  return !preg_match('/\d/',$val);

});

print_r($filteredArray);

Kết quả:

Array ( [0] => apple [1] => banana )

Các ví dụ trên chỉ là một vài ví dụ về cách sử dụng hàm array_filter() trong PHP, bạn có thể sử dụng hàm này với các mảng khác và với các hàm callback khác nhau để lọc mảng theo nhu cầu của bạn.

Kết luận 

Trong bài viết này, chúng ta đã tìm hiểu về hàm array_filter() trong PHP, hàm này có tác dụng loại bỏ các phần tử có giá trị không mong muốn từ một mảng. Hàm này có thể sử dụng với một hàm callback hoặc một biến để kiểm tra giá trị của các phần tử trong mảng. Sử dụng hàm array_filter() sẽ giúp cho việc xử lý mảng trong PHP trở nên dễ dàng và tiện lợi hơn.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Contact Me on Zalo
Call now