Mảng (array) là một trong những cấu trúc dữ liệu cơ bản và quan trọng trong PHP. Đối với những lập trình viên, việc hiểu và làm chủ các thao tác với mảng không chỉ giúp cải thiện khả năng viết mã mà còn giúp giải quyết các vấn đề phức tạp trong phát triển ứng dụng. Bộ bài tập này được thiết kế để hướng dẫn bạn từ các thao tác cơ bản như tạo mảng, thêm và xóa phần tử, đến các kỹ thuật nâng cao như lọc dữ liệu, sắp xếp, và kết hợp mảng.

Từ việc tìm kiếm các phần tử trong mảng, phân chia mảng thành các phần nhỏ hơn, đến việc xử lý các giá trị và khóa của mảng liên kết, bài tập này sẽ cung cấp cho bạn những kiến thức và kỹ năng cần thiết để làm việc hiệu quả với mảng trong PHP. Các bài tập được trình bày chi tiết và dễ hiểu, giúp bạn áp dụng lý thuyết vào thực hành một cách trực quan và hiệu quả. Hãy cùng bắt đầu hành trình làm chủ mảng trong PHP với những bài tập thực hành này!

Bài Tập 1: Tạo Mảng và In Mảng

Yêu Cầu:

  1. Tạo một mảng chứa các số nguyên.
  2. In nội dung của mảng.

Giải Thích: Mảng trong PHP có thể chứa nhiều phần tử, và chúng ta có thể sử dụng hàm print_r để in ra cấu trúc của mảng.

// Tạo mảng số nguyên
$numbers = array(1, 2, 3, 4, 5);

// In mảng
print_r($numbers);

Bài Tập 2: Đếm Số Phần Tử Trong Mảng

Yêu Cầu:

  1. Tạo một mảng chứa các chuỗi.
  2. Đếm số lượng phần tử trong mảng.

Giải Thích: Hàm count được sử dụng để đếm số lượng phần tử trong mảng.

// Tạo mảng chuỗi
$fruits = array("apple", "banana", "cherry");

// Đếm số lượng phần tử
$count = count($fruits);

// In số lượng phần tử
echo "Number of fruits: " . $count;

Bài Tập 3: Thêm Phần Tử Vào Mảng

Yêu Cầu:

  1. Tạo một mảng rỗng.
  2. Thêm các số nguyên vào mảng.
  3. In mảng sau khi thêm các phần tử.

Giải Thích: Hàm array_push được sử dụng để thêm một hoặc nhiều phần tử vào cuối mảng.

// Tạo mảng rỗng
$numbers = array();

// Thêm các số nguyên vào mảng
array_push($numbers, 1);
array_push($numbers, 2);
array_push($numbers, 3);

// In mảng
print_r($numbers);

Bài Tập 4: Xóa Phần Tử Trong Mảng

Yêu Cầu:

  1. Tạo một mảng chứa các số nguyên.
  2. Xóa một phần tử từ mảng.
  3. In mảng sau khi xóa phần tử.

Giải Thích: Hàm unset được sử dụng để xóa phần tử tại một chỉ số cụ thể. Sau khi xóa, cần sử dụng array_values để reindex mảng.

// Tạo mảng số nguyên
$numbers = array(1, 2, 3, 4, 5);

// Xóa phần tử tại chỉ số 2
unset($numbers[2]);

// Reindex mảng
$numbers = array_values($numbers);

// In mảng
print_r($numbers);

Bài Tập 5: Sắp Xếp Mảng Theo Thứ Tự Tăng Dần

Yêu Cầu:

  1. Tạo một mảng chứa các số nguyên không theo thứ tự.
  2. Sắp xếp mảng theo thứ tự tăng dần.
  3. In mảng sau khi sắp xếp.

Giải Thích: Hàm sort được sử dụng để sắp xếp mảng theo thứ tự tăng dần.

// Tạo mảng số nguyên không theo thứ tự
$numbers = array(5, 2, 9, 1, 5, 6);

// Sắp xếp mảng theo thứ tự tăng dần
sort($numbers);

// In mảng sau khi sắp xếp
print_r($numbers);

Bài Tập 6: Sắp Xếp Mảng Theo Thứ Tự Giảm Dần

Yêu Cầu:

  1. Tạo một mảng chứa các số nguyên không theo thứ tự.
  2. Sắp xếp mảng theo thứ tự giảm dần.
  3. In mảng sau khi sắp xếp.

Giải Thích: Hàm rsort được sử dụng để sắp xếp mảng theo thứ tự giảm dần.

// Tạo mảng số nguyên không theo thứ tự
$numbers = array(5, 2, 9, 1, 5, 6);

// Sắp xếp mảng theo thứ tự giảm dần
rsort($numbers);

// In mảng sau khi sắp xếp
print_r($numbers);

Bài Tập 7: Xóa Phần Tử Đầu Tiên và Cuối Cùng

Yêu Cầu:

  1. Tạo một mảng chứa các số nguyên.
  2. Xóa phần tử đầu tiên và phần tử cuối cùng.
  3. In mảng sau khi xóa các phần tử.

Giải Thích: Hàm array_shift được sử dụng để xóa phần tử đầu tiên, và hàm array_pop được sử dụng để xóa phần tử cuối cùng.

// Tạo mảng số nguyên
$numbers = array(1, 2, 3, 4, 5);

// Xóa phần tử đầu tiên
array_shift($numbers);

// Xóa phần tử cuối cùng
array_pop($numbers);

// In mảng sau khi xóa các phần tử
print_r($numbers);

Bài Tập 8: Ghép Hai Mảng

Yêu Cầu:

  1. Tạo hai mảng số nguyên.
  2. Ghép hai mảng thành một mảng duy nhất.
  3. In mảng kết quả.

Giải Thích: Hàm array_merge được sử dụng để ghép hai hoặc nhiều mảng.

// Tạo hai mảng số nguyên
$array1 = array(1, 2, 3);
$array2 = array(4, 5, 6);

// Ghép hai mảng
$merged_array = array_merge($array1, $array2);

// In mảng kết quả
print_r($merged_array);

Bài Tập 9: Tìm Phần Tử Trong Mảng

Yêu Cầu:

  1. Tạo một mảng chứa các số nguyên.
  2. Kiểm tra xem một số có tồn tại trong mảng hay không.
  3. In kết quả kiểm tra.

Giải Thích: Hàm in_array được sử dụng để kiểm tra xem một giá trị có tồn tại trong mảng hay không.

// Tạo mảng số nguyên
$numbers = array(1, 2, 3, 4, 5);

// Kiểm tra số 3 có tồn tại trong mảng không
$exists = in_array(3, $numbers);

// In kết quả kiểm tra
if ($exists) {
    echo "Number 3 exists in the array.";
} else {
    echo "Number 3 does not exist in the array.";
}

Bài Tập 10: Tìm Giá Trị Tối Đa và Tối Thiểu Trong Mảng

Yêu Cầu:

  1. Tạo một mảng chứa các số nguyên.
  2. Tìm giá trị tối đa và tối thiểu trong mảng.
  3. In các giá trị tối đa và tối thiểu.

Giải Thích: Hàm maxmin được sử dụng để tìm giá trị tối đa và tối thiểu trong mảng.

// Tạo mảng số nguyên
$numbers = array(1, 2, 3, 4, 5);

// Tìm giá trị tối đa
$max_value = max($numbers);

// Tìm giá trị tối thiểu
$min_value = min($numbers);

// In các giá trị tối đa và tối thiểu
echo "Max value: " . $max_value . "n";
echo "Min value: " . $min_value . "n";

Bài Tập 11: Tinh Tổng Các Phần Tử Trong Mảng

Yêu Cầu:

  1. Tạo một mảng chứa các số nguyên.
  2. Tính tổng của các phần tử trong mảng.
  3. In tổng của các phần tử.

Giải Thích: Hàm array_sum được sử dụng để tính tổng các phần tử trong mảng.

// Tạo mảng số nguyên
$numbers = array(1, 2, 3, 4, 5);

// Tính tổng các phần tử
$total = array_sum($numbers);

// In tổng
echo "Total sum: " . $total . "n";

Bài Tập 12: Tạo Mảng Liên Kết

Yêu Cầu:

  1. Tạo một mảng liên kết với các khóa và giá trị.
  2. In mảng liên kết.

Giải Thích: Mảng liên kết cho phép sử dụng các khóa tùy chỉnh thay vì chỉ số số nguyên.

// Tạo mảng liên kết
$person = array(
    "name" => "John",
    "age" => 30,
    "city" => "New York"
);

// In mảng liên kết
print_r($person);

Bài Tập 13: Thay Đổi Giá Trị Trong Mảng Liên Kết

Yêu Cầu:

  1. Tạo một mảng liên kết với các khóa và giá trị.
  2. Thay đổi giá trị của một khóa trong mảng.
  3. In mảng liên kết sau khi thay đổi.

Giải Thích: Bạn có thể thay đổi giá trị của một khóa bằng cách gán giá trị mới cho khóa đó.

// Tạo mảng liên kết
$person = array(
    "name" => "John",
    "age" => 30,
    "city" => "New York"
);

// Thay đổi giá trị của khóa 'city'
$person["city"] = "Los Angeles";

// In mảng liên kết sau khi thay đổi
print_r($person);

Bài Tập 14: Xóa Khóa Trong Mảng Liên Kết

Yêu Cầu:

  1. Tạo một mảng liên kết với các khóa và giá trị.
  2. Xóa một khóa khỏi mảng.
  3. In mảng liên kết sau khi xóa.

Giải Thích: Hàm unset được sử dụng để xóa một phần tử khỏi mảng liên kết bằng cách chỉ định khóa của phần tử đó.

// Tạo mảng liên kết
$person = array(
    "name" => "John",
    "age" => 30,
    "city" => "New York"
);

// Xóa khóa 'age'
unset($person["age"]);

// In mảng liên kết sau khi xóa
print_r($person);

Bài Tập 15: Lặp Qua Mảng Liên Kết

Yêu Cầu:

  1. Tạo một mảng liên kết với các khóa và giá trị.
  2. Lặp qua mảng và in các khóa và giá trị.

Giải Thích: Bạn có thể sử dụng vòng lặp foreach để lặp qua mảng liên kết.

// Tạo mảng liên kết
$person = array(
    "name" => "John",
    "age" => 30,
    "city" => "New York"
);

// Lặp qua mảng và in các khóa và giá trị
foreach ($person as $key => $value) {
    echo $key . ": " . $value . "n";
}

Bài Tập 16: Nhóm Các Phần Tử Theo Một Điều Kiện

Yêu Cầu:

  1. Tạo một mảng số nguyên.
  2. Nhóm các phần tử trong mảng thành hai mảng: số chẵn và số lẻ.
  3. In các mảng đã nhóm.

Giải Thích: Sử dụng vòng lặp để phân loại các phần tử thành các nhóm dựa trên điều kiện.

// Tạo mảng số nguyên
$numbers = array(1, 2, 3, 4, 5, 6, 7, 8, 9);

// Nhóm các phần tử thành số chẵn và số lẻ
$even_numbers = array();
$odd_numbers = array();

foreach ($numbers as $number) {
    if ($number % 2 == 0) {
        $even_numbers[] = $number;
    } else {
        $odd_numbers[] = $number;
    }
}

// In các mảng đã nhóm
echo "Even numbers: ";
print_r($even_numbers);

echo "Odd numbers: ";
print_r($odd_numbers);

Bài Tập 17: Tạo Mảng Từ Một Chuỗi

Yêu Cầu:

  1. Tạo một chuỗi các từ ngăn cách bởi dấu phẩy.
  2. Chia chuỗi thành một mảng các từ.

Giải Thích: Hàm explode được sử dụng để chia một chuỗi thành mảng dựa trên dấu phân cách.

// Tạo chuỗi các từ ngăn cách bởi dấu phẩy
$string = "apple,banana,cherry";

// Chia chuỗi thành mảng các từ
$words = explode(",", $string);

// In mảng các từ
print_r($words);

Bài Tập 18: Chuyển Đổi Mảng Thành Chuỗi

Yêu Cầu:

  1. Tạo một mảng các từ.
  2. Chuyển đổi mảng thành chuỗi với các từ ngăn cách bởi dấu cách.

Giải Thích: Hàm implode được sử dụng để kết hợp các phần tử của mảng thành một chuỗi.

// Tạo mảng các từ
$words = array("apple", "banana", "cherry");

// Chuyển đổi mảng thành chuỗi
$string = implode(" ", $words);

// In chuỗi
echo $string;

Bài Tập 19: Lọc Mảng Theo Điều Kiện

Yêu Cầu:

  1. Tạo một mảng số nguyên.
  2. Lọc các số lớn hơn 5 từ mảng.
  3. In mảng sau khi lọc.

Giải Thích: Hàm array_filter được sử dụng để lọc mảng theo một điều kiện cho trước.

// Tạo mảng số nguyên
$numbers = array(1, 2, 3, 4, 5, 6, 7, 8, 9);

// Lọc các số lớn hơn 5
$filtered_numbers = array_filter($numbers, function($number) {
    return $number > 5;
});

// In mảng sau khi lọc
print_r($filtered_numbers);

Bài Tập 20: Chuyển Đổi Các Phần Tử Mảng

Yêu Cầu:

  1. Tạo một mảng số nguyên.
  2. Chuyển đổi mỗi số thành bình phương của nó.
  3. In mảng sau khi chuyển đổi.

Giải Thích: Hàm array_map được sử dụng để áp dụng một hàm cho mỗi phần tử của mảng.

// Tạo mảng số nguyên
$numbers = array(1, 2, 3, 4, 5);

// Chuyển đổi mỗi số thành bình phương của nó
$squared_numbers = array_map(function($number) {
    return $number * $number;
}, $numbers);

// In mảng sau khi chuyển đổi
print_r($squared_numbers);

Bài Tập 21: Sắp Xếp Mảng Liên Kết Theo Khóa

Yêu Cầu:

  1. Tạo một mảng liên kết.
  2. Sắp xếp mảng theo khóa.

Giải Thích: Hàm ksort được sử dụng để sắp xếp mảng liên kết theo khóa.

// Tạo mảng liên kết
$person = array(
    "name" => "John",
    "age" => 30,
    "city" => "New York"
);

// Sắp xếp mảng theo khóa
ksort($person);

// In mảng liên kết sau khi sắp xếp
print_r($person);

Bài Tập 22: Sắp Xếp Mảng Liên Kết Theo Giá Trị

Yêu Cầu:

  1. Tạo một mảng liên kết.
  2. Sắp xếp mảng theo giá trị.

Giải Thích: Hàm asort được sử dụng để sắp xếp mảng liên kết theo giá trị và duy trì mối liên hệ giữa khóa và giá trị.

// Tạo mảng liên kết
$person = array(
    "name" => "John",
    "age" => 30,
    "city" => "New York"
);

// Sắp xếp mảng theo giá trị
asort($person);

// In mảng liên kết sau khi sắp xếp
print_r($person);

Bài Tập 23: Tạo Mảng Đối Tượng

Yêu Cầu:

  1. Tạo một mảng chứa các đối tượng.
  2. In các đối tượng.

Giải Thích: Bạn có thể tạo các đối tượng từ một lớp và lưu chúng trong mảng.

// Định nghĩa lớp Person
class Person {
    public $name;
    public $age;

    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
}

// Tạo mảng chứa các đối tượng
$people = array(
    new Person("John", 30),
    new Person("Jane", 25)
);

// In các đối tượng
foreach ($people as $person) {
    echo "Name: " . $person->name . ", Age: " . $person->age . "n";
}

Bài Tập 24: Tìm Đối Tượng Trong Mảng Đối Tượng

Yêu Cầu:

  1. Tạo một mảng chứa các đối tượng.
  2. Tìm đối tượng dựa trên một thuộc tính của nó.

Giải Thích: Sử dụng vòng lặp để tìm đối tượng trong mảng dựa trên thuộc tính cụ thể.

// Định nghĩa lớp Person
class Person {
    public $name;
    public $age;

    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
}

// Tạo mảng chứa các đối tượng
$people = array(
    new Person("John", 30),
    new Person("Jane", 25)
);

// Tìm đối tượng với tên 'Jane'
$found = null;
foreach ($people as $person) {
    if ($person->name == "Jane") {
        $found = $person;
        break;
    }
}

// In kết quả tìm kiếm
if ($found) {
    echo "Found: Name: " . $found->name . ", Age: " . $found->age . "n";
} else {
    echo "Person not found.n";
}

Bài Tập 25: Kết Hợp Các Mảng Đối Tượng

Yêu Cầu:

  1. Tạo hai mảng chứa các đối tượng.
  2. Kết hợp các mảng thành một mảng duy nhất.

Giải Thích: Sử dụng hàm array_merge để kết hợp các mảng chứa đối tượng.

// Định nghĩa lớp Person
class Person {
    public $name;
    public $age;

    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
}

// Tạo hai mảng chứa các đối tượng
$group1 = array(
    new Person("John", 30),
    new Person("Jane", 25)
);

$group2 = array(
    new Person("Mike", 40),
    new Person("Anna", 22)
);

// Kết hợp các mảng
$all_people = array_merge($group1, $group2);

// In các đối tượng
foreach ($all_people as $person) {
    echo "Name: " . $person->name . ", Age: " . $person->age . "n";
}

Bài Tập 26: Sắp Xếp Mảng Đối Tượng Theo Thuộc Tính

Yêu Cầu:

  1. Tạo một mảng chứa các đối tượng.
  2. Sắp xếp mảng theo thuộc tính age.

Giải Thích: Sử dụng hàm usort để sắp xếp mảng đối tượng dựa trên một thuộc tính.

// Định nghĩa lớp Person
class Person {
    public $name;
    public $age;

    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
}

// Tạo mảng chứa các đối tượng
$people = array(
    new Person("John", 30),
    new Person("Jane", 25),
    new Person("Mike", 40)
);

// Sắp xếp mảng theo thuộc tính 'age'
usort($people, function($a, $b) {
    return $a->age - $b->age;
});

// In các đối tượng sau khi sắp xếp
foreach ($people as $person) {
    echo "Name: " . $person->name . ", Age: " . $person->age . "n";
}

Bài Tập 27: Xóa Các Phần Tử Trùng Lặp

Yêu Cầu:

  1. Tạo một mảng chứa các phần tử trùng lặp.
  2. Xóa các phần tử trùng lặp trong mảng.

Giải Thích: Hàm array_unique được sử dụng để loại bỏ các phần tử trùng lặp trong mảng.

// Tạo mảng chứa các phần tử trùng lặp
$numbers = array(1, 2, 3, 1, 2, 4, 5);

// Xóa các phần tử trùng lặp
$unique_numbers = array_unique($numbers);

// In mảng sau khi xóa trùng lặp
print_r($unique_numbers);

Bài Tập 28: Chia Mảng Thành Các Mảng Nhỏ

Yêu Cầu:

  1. Tạo một mảng chứa các số nguyên.
  2. Chia mảng thành các mảng nhỏ với số phần tử xác định.

Giải Thích: Hàm array_chunk được sử dụng để chia mảng thành các mảng nhỏ hơn.

// Tạo mảng chứa các số nguyên
$numbers = array(1, 2, 3, 4, 5, 6, 7, 8, 9);

// Chia mảng thành các mảng nhỏ với 3 phần tử mỗi mảng
$chunks = array_chunk($numbers, 3);

// In các mảng nhỏ
print_r($chunks);

Bài Tập 29: Tìm Các Phần Tử Chung Giữa Hai Mảng

Yêu Cầu:

  1. Tạo hai mảng chứa các số nguyên.
  2. Tìm các phần tử chung giữa hai mảng.

Giải Thích: Hàm array_intersect được sử dụng để tìm các phần tử chung giữa hai mảng.

// Tạo hai mảng chứa các số nguyên
$array1 = array(1, 2, 3, 4, 5);
$array2 = array(4, 5, 6, 7, 8);

// Tìm các phần tử chung giữa hai mảng
$common_elements = array_intersect($array1, $array2);

// In các phần tử chung
print_r($common_elements);

Bài Tập 30: Tìm Các Phần Tử Khác Nhau Giữa Hai Mảng

Yêu Cầu:

  1. Tạo hai mảng chứa các số nguyên.
  2. Tìm các phần tử chỉ có trong một trong hai mảng.

Giải Thích: Hàm array_diff được sử dụng để tìm các phần tử có mặt trong mảng này nhưng không có mặt trong mảng kia.

// Tạo hai mảng chứa các số nguyên
$array1 = array(1, 2, 3, 4, 5);
$array2 = array(4, 5, 6, 7, 8);

// Tìm các phần tử chỉ có trong mảng1 nhưng không có trong mảng2
$unique_to_array1 = array_diff($array1, $array2);

// Tìm các phần tử chỉ có trong mảng2 nhưng không có trong mảng1
$unique_to_array2 = array_diff($array2, $array1);

// In các phần tử khác nhau
echo "Unique to array1: ";
print_r($unique_to_array1);

echo "Unique to array2: ";
print_r($unique_to_array2);

Bài Tập 31: Chuyển Đổi Mảng Liên Kết Thành Một Mảng Đơn

Yêu Cầu:

  1. Tạo một mảng liên kết với các khóa và giá trị.
  2. Chuyển đổi mảng liên kết thành một mảng đơn.

Giải Thích: Sử dụng hàm array_values để lấy các giá trị của mảng liên kết và loại bỏ các khóa.

// Tạo mảng liên kết
$person = array(
    "name" => "John",
    "age" => 30,
    "city" => "New York"
);

// Chuyển đổi mảng liên kết thành một mảng đơn
$values = array_values($person);

// In mảng đơn
print_r($values);

Bài Tập 32: Chuyển Đổi Mảng Đơn Thành Một Mảng Liên Kết

Yêu Cầu:

  1. Tạo một mảng đơn.
  2. Chuyển đổi mảng đơn thành một mảng liên kết với các khóa tùy chỉnh.

Giải Thích: Sử dụng hàm array_combine để kết hợp hai mảng thành một mảng liên kết.

// Tạo mảng đơn
$values = array("John", 30, "New York");

// Tạo mảng khóa
$keys = array("name", "age", "city");

// Chuyển đổi mảng đơn thành mảng liên kết
$person = array_combine($keys, $values);

// In mảng liên kết
print_r($person);

Bài Tập 33: Xóa Các Phần Tử Tại Một Chỉ Số Cụ Thể

Yêu Cầu:

  1. Tạo một mảng chứa các số nguyên.
  2. Xóa các phần tử tại chỉ số cụ thể từ mảng.

Giải Thích: Sử dụng hàm unset để xóa phần tử tại chỉ số cụ thể và array_values để reindex mảng.

// Tạo mảng số nguyên
$numbers = array(1, 2, 3, 4, 5);

// Xóa phần tử tại chỉ số 1 và 3
unset($numbers[1]);
unset($numbers[3]);

// Reindex mảng
$numbers = array_values($numbers);

// In mảng sau khi xóa
print_r($numbers);

Bài Tập 34: Tìm Giá Trị Đầu Tiên và Cuối Cùng Trong Mảng

Yêu Cầu:

  1. Tạo một mảng chứa các số nguyên.
  2. Tìm giá trị đầu tiên và cuối cùng trong mảng.

Giải Thích: Sử dụng các chỉ số đầu tiên và cuối cùng của mảng để tìm giá trị đầu tiên và cuối cùng.

// Tạo mảng số nguyên
$numbers = array(1, 2, 3, 4, 5);

// Tìm giá trị đầu tiên và cuối cùng
$first = reset($numbers);
$last = end($numbers);

// In kết quả
echo "First value: " . $first . "n";
echo "Last value: " . $last . "n";

Bài Tập 35: Chia Mảng Thành Các Phần Tử Có Độ Dài Xác Định

Yêu Cầu:

  1. Tạo một mảng chứa các số nguyên.
  2. Chia mảng thành các phần tử với độ dài xác định.

Giải Thích: Sử dụng hàm array_chunk để chia mảng thành các phần tử với độ dài xác định.

// Tạo mảng số nguyên
$numbers = array(1, 2, 3, 4, 5, 6, 7, 8, 9);

// Chia mảng thành các phần tử với độ dài 2
$chunks = array_chunk($numbers, 2);

// In các phần tử
print_r($chunks);

Bài Tập 36: Xoá Các Phần Tử Theo Điều Kiện

Yêu Cầu:

  1. Tạo một mảng chứa các số nguyên.
  2. Xoá các phần tử không thỏa mãn điều kiện cụ thể, ví dụ: các số nhỏ hơn 5.

Giải Thích: Sử dụng hàm array_filter để lọc các phần tử theo điều kiện.

// Tạo mảng số nguyên
$numbers = array(1, 2, 3, 4, 5, 6, 7, 8, 9);

// Xoá các phần tử nhỏ hơn 5
$filtered_numbers = array_filter($numbers, function($number) {
    return $number >= 5;
});

// In mảng sau khi lọc
print_r($filtered_numbers);

Bài Tập 37: Đảo Ngược Các Phần Tử Trong Mảng

Yêu Cầu:

  1. Tạo một mảng chứa các số nguyên.
  2. Đảo ngược thứ tự của các phần tử trong mảng.

Giải Thích: Sử dụng hàm array_reverse để đảo ngược thứ tự của các phần tử trong mảng.

// Tạo mảng số nguyên
$numbers = array(1, 2, 3, 4, 5);

// Đảo ngược các phần tử
$reversed_numbers = array_reverse($numbers);

// In mảng sau khi đảo ngược
print_r($reversed_numbers);

Bài Tập 38: Tạo Mảng Từ Các Giá Trị Đã Được Định Nghĩa

Yêu Cầu:

  1. Tạo một mảng chứa các giá trị cụ thể.
  2. Tạo một mảng mới từ các giá trị đã được định nghĩa trước.

Giải Thích: Sử dụng hàm array_fill để tạo mảng từ các giá trị đã định nghĩa.

// Tạo mảng mới chứa giá trị 'x' với 5 phần tử
$filled_array = array_fill(0, 5, 'x');

// In mảng đã tạo
print_r($filled_array);

Bài Tập 39: Tạo Mảng Liên Kết Từ Hai Mảng

Yêu Cầu:

  1. Tạo một mảng chứa các khóa.
  2. Tạo một mảng chứa các giá trị.
  3. Tạo mảng liên kết từ hai mảng trên.

Giải Thích: Sử dụng hàm array_combine để kết hợp mảng khóa và mảng giá trị thành mảng liên kết.

// Tạo mảng khóa
$keys = array('name', 'age', 'city');

// Tạo mảng giá trị
$values = array('John', 30, 'New York');

// Tạo mảng liên kết
$person = array_combine($keys, $values);

// In mảng liên kết
print_r($person);

Bài Tập 40: Tính Tổng Các Giá Trị Trong Mảng

Yêu Cầu:

  1. Tạo một mảng chứa các số nguyên.
  2. Tính tổng của tất cả các phần tử trong mảng.

Giải Thích: Sử dụng hàm array_sum để tính tổng của các phần tử trong mảng.

// Tạo mảng số nguyên
$numbers = array(1, 2, 3, 4, 5);

// Tính tổng các phần tử
$sum = array_sum($numbers);

// In tổng
echo "Total sum: " . $sum . "n";

Bài Tập 41: Chia Mảng Thành Các Mảng Nhỏ Hơn Với Điều Kiện

Yêu Cầu:

  1. Tạo một mảng chứa các số nguyên.
  2. Chia mảng thành các mảng nhỏ hơn có số phần tử tối đa là 4, và thêm một điều kiện lọc.

Giải Thích: Sử dụng hàm array_chunkarray_filter để chia mảng thành các mảng nhỏ hơn và lọc các phần tử.

// Tạo mảng số nguyên
$numbers = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);

// Chia mảng thành các mảng nhỏ với tối đa 4 phần tử
$chunks = array_chunk($numbers, 4);

// Lọc các phần tử trong mỗi mảng nhỏ hơn
$filtered_chunks = array_map(function($chunk) {
    return array_filter($chunk, function($number) {
        return $number % 2 == 0; // Lọc các số chẵn
    });
}, $chunks);

// In các mảng nhỏ hơn đã lọc
print_r($filtered_chunks);

Bài Tập 42: Tạo Mảng Từ Một Chuỗi

Yêu Cầu:

  1. Tạo một chuỗi chứa các từ phân cách bởi dấu phẩy.
  2. Chuyển chuỗi thành mảng.

Giải Thích: Sử dụng hàm explode để chuyển chuỗi thành mảng dựa trên dấu phân cách.

// Tạo chuỗi
$string = "apple,banana,orange,grape";

// Chuyển chuỗi thành mảng
$array = explode(',', $string);

// In mảng đã tạo
print_r($array);

Bài Tập 43: Tạo Chuỗi Từ Một Mảng

Yêu Cầu:

  1. Tạo một mảng chứa các từ.
  2. Chuyển mảng thành chuỗi với các từ phân cách bởi dấu gạch ngang.

Giải Thích: Sử dụng hàm implode để chuyển mảng thành chuỗi với dấu phân cách.

// Tạo mảng
$array = array('apple', 'banana', 'orange', 'grape');

// Chuyển mảng thành chuỗi với dấu phân cách là gạch ngang
$string = implode('-', $array);

// In chuỗi đã tạo
echo $string . "n";

Bài Tập 44: Lấy Phần Tử Từ Mảng Đầu Tiên

Yêu Cầu:

  1. Tạo một mảng chứa các số nguyên.
  2. Lấy phần tử đầu tiên của mảng.

Giải Thích: Sử dụng hàm reset để lấy phần tử đầu tiên của mảng.

// Tạo mảng số nguyên
$numbers = array(1, 2, 3, 4, 5);

// Lấy phần tử đầu tiên
$first = reset($numbers);

// In phần tử đầu tiên
echo "First element: " . $first . "n";

Bài Tập 45: Tạo Một Mảng Liên Kết Với Các Giá Trị Đặc Biệt

Yêu Cầu:

  1. Tạo một mảng liên kết với các khóa và giá trị đặc biệt.
  2. Thay đổi giá trị của một khóa cụ thể.

Giải Thích: Tạo mảng liên kết và cập nhật giá trị của một khóa cụ thể.

// Tạo mảng liên kết
$person = array(
    "name" => "John",
    "age" => 30,
    "city" => "New York"
);

// Thay đổi giá trị của khóa 'city'
$person["city"] = "Los Angeles";

// In mảng liên kết
print_r($person);

Bài Tập 46: Sắp Xếp Mảng Theo Các Giá Trị

Yêu Cầu:

  1. Tạo một mảng chứa các số nguyên.
  2. Sắp xếp mảng theo giá trị tăng dần.

Giải Thích: Sử dụng hàm sort để sắp xếp mảng theo giá trị tăng dần.

// Tạo mảng số nguyên
$numbers = array(3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5);

// Sắp xếp mảng theo giá trị tăng dần
sort($numbers);

// In mảng đã sắp xếp
print_r($numbers);

Bài Tập 47: Tạo Một Mảng Liên Kết Từ Mảng Số

Yêu Cầu:

  1. Tạo một mảng chứa các số nguyên.
  2. Tạo một mảng liên kết từ mảng số với các khóa là chỉ số của mảng số.

Giải Thích: Sử dụng hàm array_combine để kết hợp các chỉ số với giá trị của mảng.

// Tạo mảng số nguyên
$numbers = array(10, 20, 30);

// Tạo mảng khóa từ chỉ số của mảng số
$keys = array_keys($numbers);

// Tạo mảng liên kết
$assoc_array = array_combine($keys, $numbers);

// In mảng liên kết
print_r($assoc_array);

Bài Tập 48: Xóa Phần Tử Dựa Trên Giá Trị

Yêu Cầu:

  1. Tạo một mảng chứa các số nguyên.
  2. Xoá phần tử có giá trị cụ thể, ví dụ: giá trị 5.

Giải Thích: Sử dụng hàm array_diff để xoá phần tử có giá trị cụ thể.

// Tạo mảng số nguyên
$numbers = array(1, 2, 3, 4, 5, 6, 7, 8, 9);

// Xoá phần tử có giá trị 5
$filtered_numbers = array_diff($numbers, array(5));

// In mảng đã lọc
print_r($filtered_numbers);

Bài Tập 49: Kết Hợp Hai Mảng

Yêu Cầu:

  1. Tạo hai mảng chứa các số nguyên.
  2. Kết hợp hai mảng thành một mảng duy nhất.

Giải Thích: Sử dụng hàm array_merge để kết hợp hai mảng.

// Tạo hai mảng số nguyên
$array1 = array(1, 2, 3);
$array2 = array(4, 5, 6);

// Kết hợp hai mảng
$merged_array = array_merge($array1, $array2);

// In mảng đã kết hợp
print_r($merged_array);

Bài Tập 50: Tìm Phần Tử Chung Giữa Hai Mảng

Yêu Cầu:

  1. Tạo hai mảng chứa các số nguyên.
  2. Tìm các phần tử chung giữa hai mảng.

Giải Thích: Sử dụng hàm array_intersect để tìm các phần tử chung giữa hai mảng.

// Tạo hai mảng số nguyên
$array1 = array(1, 2, 3, 4, 5);
$array2 = array(4, 5, 6, 7, 8);

// Tìm các phần tử chung
$common_elements = array_intersect($array1, $array2);

// In các phần tử chung
print_r($common_elements);

Việc làm chủ các thao tác với mảng trong PHP không chỉ là một phần thiết yếu trong quá trình phát triển ứng dụng mà còn là nền tảng vững chắc cho việc giải quyết các vấn đề lập trình phức tạp. Qua 50 bài tập thực hành chi tiết này, bạn đã được trang bị với những kỹ năng quan trọng để thao tác với mảng một cách hiệu quả và chính xác. Từ việc tạo và xử lý các phần tử trong mảng, đến việc sử dụng các hàm nâng cao như sắp xếp, lọc, và kết hợp mảng, mỗi bài tập đều mang đến cơ hội để củng cố và mở rộng kiến thức của bạn.

Những bài tập này không chỉ giúp bạn hiểu rõ hơn về các chức năng của PHP mà còn cải thiện khả năng phân tích và giải quyết vấn đề trong lập trình. Việc áp dụng những kỹ thuật này trong các dự án thực tế sẽ giúp bạn xây dựng các ứng dụng mạnh mẽ và tối ưu hơn. Hãy tiếp tục thực hành và khám phá thêm để không ngừng nâng cao kỹ năng lập trình của mình. Chúc bạn thành công trong hành trình làm chủ PHP và trở thành một lập trình viên xuất sắc!