Làm cách nào để tạo một mảng kết hợp đa chiều trong PHP?

Mảng đa chiều lưu trữ nhiều mảng trong khi mảng kết hợp lưu trữ các cặp khóa-giá trị dưới dạng dữ liệu. Mối quan hệ được nhóm giữa dữ liệu có thể được lưu trữ trong các mảng kết hợp đa chiều

Ví dụ

Bản thử trực tiếp

 "Joe",
   "Age" => "20",
   "Birth_date" => "2000",
   "Job_details" => array(
      "Position" => "Manager",
      "Salary" => "Lakhs"
   )
);
print_r($my_arr['Employee']['Name']);
echo "
"; echo $my_arr['Employee']['Age']; ?>

đầu ra

Joe 20

Một mảng được xác định có chứa các thuộc tính khác nhau của một nhân viên. Mảng nhân viên được truy cập dựa trên tên chỉ mục và dữ liệu được hiển thị trên bàn điều khiển

Mảng là các biến phức tạp cho phép chúng ta lưu trữ nhiều hơn một giá trị hoặc một nhóm giá trị dưới một tên biến duy nhất. Giả sử bạn muốn lưu trữ màu trong tập lệnh PHP của mình. Lưu trữ từng màu một trong một biến có thể trông giống như thế này

Nhưng sao, nếu bạn muốn lưu tên các tiểu bang hoặc tên thành phố của một quốc gia trong các biến và lần này không chỉ ba mà có thể là hàng trăm. Việc lưu tên mỗi thành phố vào một biến riêng biệt là một ý tưởng khá khó, nhàm chán và tồi. Và ở đây mảng phát huy tác dụng


Các loại mảng trong PHP

Có ba loại mảng mà bạn có thể tạo. đó là

  • Mảng được lập chỉ mục — Một mảng có một phím số
  • Mảng kết hợp — Một mảng trong đó mỗi khóa có giá trị cụ thể của riêng nó
  • Mảng đa chiều — Mảng chứa một hoặc nhiều mảng bên trong chính nó

Mảng được lập chỉ mục

Một mảng được lập chỉ mục hoặc số lưu trữ từng phần tử mảng với một chỉ mục số. Các ví dụ sau đây cho thấy hai cách tạo một mảng được lập chỉ mục, cách dễ nhất là

Ghi chú. Trong một mảng được lập chỉ mục hoặc mảng số, các chỉ mục được gán tự động và bắt đầu bằng 0 và các giá trị có thể là bất kỳ loại dữ liệu nào

Điều này tương đương với ví dụ sau, trong đó các chỉ mục được gán thủ công


Mảng kết hợp

Trong một mảng kết hợp, các khóa được gán cho các giá trị có thể là các chuỗi tùy ý và do người dùng xác định. Trong ví dụ sau, mảng sử dụng khóa thay vì số chỉ mục

22, "Clark"=>32, "John"=>28);
?>

Ví dụ sau tương đương với ví dụ trước, nhưng chỉ ra một cách khác để tạo mảng kết hợp


Mảng nhiều chiều là mảng trong đó mỗi phần tử cũng có thể là một mảng và mỗi phần tử trong mảng con có thể là một mảng hoặc hơn nữa chứa mảng trong chính nó, v.v. Một ví dụ về mảng nhiều chiều sẽ giống như thế này

 "Peter Parker",
        "email" => "[email protected]",
    ),
    array(
        "name" => "Clark Kent",
        "email" => "[email protected]",
    ),
    array(
        "name" => "Harry Potter",
        "email" => "[email protected]",
    )
);
// Access nested value
echo "Peter Parker's Email-id is: " . $contacts[0]["email"];
?>


Xem cấu trúc và giá trị mảng

Bạn có thể xem cấu trúc và giá trị của bất kỳ mảng nào bằng cách sử dụng một trong hai câu lệnh — var_dump() hoặc print_r(). Tuy nhiên, câu lệnh print_r() cung cấp ít thông tin hơn. Xem xét ví dụ sau

Câu lệnh print_r() cho đầu ra sau

Mảng ( [0] => Luân Đôn [1] => Paris [2] => New York )

Đầu ra này hiển thị khóa và giá trị cho từng phần tử trong mảng. Để biết thêm thông tin, hãy sử dụng câu lệnh sau

Câu lệnh var_dump() này cho kết quả sau

mảng(3) { [0]=> string(6) "London" [1]=> string(5) "Paris" [2]=> string(8) "New York" }

Đầu ra này hiển thị kiểu dữ liệu của từng phần tử, chẳng hạn như chuỗi 6 ký tự, ngoài khóa và giá trị. Trong chương tiếp theo, bạn sẽ học cách sắp xếp các phần tử mảng

Mảng nhiều chiều là mảng chứa một hoặc nhiều mảng. PHP hỗ trợ các mảng đa chiều có độ sâu hai, ba, bốn, năm hoặc nhiều cấp độ hơn. Tuy nhiên, mảng sâu hơn ba cấp khó quản lý đối với hầu hết mọi người

PHP – Mảng hai chiều

Đây là dạng đơn giản nhất của mảng nhiều chiều. Nó có thể được tạo bằng cách sử dụng mảng lồng nhau. Các loại mảng này có thể được sử dụng để lưu trữ bất kỳ loại phần tử nào, nhưng chỉ mục luôn là một số. Theo mặc định, chỉ mục bắt đầu bằng số không

cú pháp

array (
    array (elements...),
    array (elements...),
    ...
)
Làm cách nào để tạo một mảng kết hợp đa chiều trong PHP?
Làm cách nào để tạo một mảng kết hợp đa chiều trong PHP?

Ví dụ.

 ["maths" => 85, "sci" => 75, "sst" => 65],
    "sohan" => ["maths" => 74, "sci" => 78, "sst" => 12],
    "rohan" => ["maths" => 45, "sci" => 78, "sst" => 41],
];
foreach ($marks as $key => $v1) {
    echo $key . " ";
    foreach ($v1 as $v2) {
        echo $v2 . " ";
    }
    echo "
"; } ?>

Hàm sizeof() trong PHP

Hàm sizeof() của Php cũng trả về số lượng giá trị

Trường hợp mảng đơn

đầu ra

3

Trường hợp mảng nhiều chiều

 ["orange", "apple"],
    "veggies" => ["carrot", "raddish"],
];
echo sizeof($food); 
?>

đầu ra

2

Đếm tất cả các mảng của mảng chính

chỉ cần thay đổi điều này trong mã trước đó của bạn. Điều này sẽ đếm tất cả các mảng của biến $food

 ["orange", "apple"],
    "veggies" => ["carrot", "raddish"],
];
echo sizeof($food, 1); 
?>

đầu ra

6

Đếm mảng cụ thể của mảng

Ví dụ. Đếm mảng 'trái cây'

 ["orange", "apple"],
    "veggies" => ["carrot", "raddish"],
];
echo sizeof($food[‘fruits’], 1); 
?>

đầu ra

2

Cách sử dụng mã trên

 ["maths" => 85, "sci" => 75, "sst" => 65],
    "sohan" => ["maths" => 74, "sci" => 78, "sst" => 12],
    "rohan" => ["maths" => 45, "sci" => 78, "sst" => 41],
];
foreach ($marks as $key => $v1) {
    echo $key . " ";
    foreach ($v1 as $v2) {
        echo $v2 . " ";
    }
    echo "
"; } ?>
0

đầu ra

 ["maths" => 85, "sci" => 75, "sst" => 65],
    "sohan" => ["maths" => 74, "sci" => 78, "sst" => 12],
    "rohan" => ["maths" => 45, "sci" => 78, "sst" => 41],
];
foreach ($marks as $key => $v1) {
    echo $key . " ";
    foreach ($v1 as $v2) {
        echo $v2 . " ";
    }
    echo "
"; } ?>
1

Tìm kiếm mảng PHP

Mảng tìm kiếm PHP được sử dụng để tìm kiếm mảng. Ví dụ: trong đoạn mã dưới đây, chúng tôi muốn tìm kiếm 'xoài'

 ["maths" => 85, "sci" => 75, "sst" => 65],
    "sohan" => ["maths" => 74, "sci" => 78, "sst" => 12],
    "rohan" => ["maths" => 45, "sci" => 78, "sst" => 41],
];
foreach ($marks as $key => $v1) {
    echo $key . " ";
    foreach ($v1 as $v2) {
        echo $v2 . " ";
    }
    echo "
"; } ?>
2

Để làm được điều này, trong PHP, chúng ta có 2 mảng tên là

  • Trong_mảng
  • Array_search

Nếu chúng ta sử dụng in_array, nó sẽ chỉ cho kết quả là 0 và 1. O có nghĩa là Sai và 1 có nghĩa là Đúng. Nếu từ đã cho nằm trong hàm mảng, kết quả sẽ là 1. Nếu từ đã cho không có trong mảng, kết quả sẽ là 0

Nếu chúng ta sử dụng hàm array_search, nó sẽ cho chúng ta chỉ số của một mảng hoặc khóa của nó

Nếu mảng là chỉ mục, kết quả sẽ in chỉ mục

Nếu một mảng giống như một mảng kết hợp, kết quả sẽ in khóa của nó

Trong_mảng

Ví dụ về hàm in_array

 ["maths" => 85, "sci" => 75, "sst" => 65],
    "sohan" => ["maths" => 74, "sci" => 78, "sst" => 12],
    "rohan" => ["maths" => 45, "sci" => 78, "sst" => 41],
];
foreach ($marks as $key => $v1) {
    echo $key . " ";
    foreach ($v1 as $v2) {
        echo $v2 . " ";
    }
    echo "
"; } ?>
3

đầu ra

 ["maths" => 85, "sci" => 75, "sst" => 65],
    "sohan" => ["maths" => 74, "sci" => 78, "sst" => 12],
    "rohan" => ["maths" => 45, "sci" => 78, "sst" => 41],
];
foreach ($marks as $key => $v1) {
    echo $key . " ";
    foreach ($v1 as $v2) {
        echo $v2 . " ";
    }
    echo "
"; } ?>
4

Tìm kiếm số nguyên

 ["maths" => 85, "sci" => 75, "sst" => 65],
    "sohan" => ["maths" => 74, "sci" => 78, "sst" => 12],
    "rohan" => ["maths" => 45, "sci" => 78, "sst" => 41],
];
foreach ($marks as $key => $v1) {
    echo $key . " ";
    foreach ($v1 as $v2) {
        echo $v2 . " ";
    }
    echo "
"; } ?>
5

đầu ra

 ["maths" => 85, "sci" => 75, "sst" => 65],
    "sohan" => ["maths" => 74, "sci" => 78, "sst" => 12],
    "rohan" => ["maths" => 45, "sci" => 78, "sst" => 41],
];
foreach ($marks as $key => $v1) {
    echo $key . " ";
    foreach ($v1 as $v2) {
        echo $v2 . " ";
    }
    echo "
"; } ?>
6

Nếu giá trị int được viết trong dấu ngoặc kép trong hàm mảng

 ["maths" => 85, "sci" => 75, "sst" => 65],
    "sohan" => ["maths" => 74, "sci" => 78, "sst" => 12],
    "rohan" => ["maths" => 45, "sci" => 78, "sst" => 41],
];
foreach ($marks as $key => $v1) {
    echo $key . " ";
    foreach ($v1 as $v2) {
        echo $v2 . " ";
    }
    echo "
"; } ?>
7

Giải trình. nếu người dùng không thêm tham số thực, kết quả sẽ là 'tìm thấy' mặc dù 45 được viết trong một mảng là một chuỗi và trong hàm if, nó được viết dưới dạng số nguyên vì không có dấu ngoặc kép. Vì vậy, nếu người dùng muốn tìm kiếm giá trị nguyên chính xác trong một mảng thì nó phải viết một tham số thực

Làm cách nào để tạo mảng đa chiều trong PHP một cách linh hoạt?

PHP cho phép một cách rất đơn giản để khai báo một mảng nhiều chiều trong PHP bằng cách sử dụng từ khóa 'mảng' . Để khai báo một mảng bên trong một mảng khác, chúng ta cần thêm từ khóa 'mảng' và sau đó là các phần tử của mảng đó.

Làm cách nào để tạo mảng đa chiều trong PHP bằng foreach?

Trả lời. Sử dụng vòng lặp lồng nhau trong PHP .

Cú pháp của mảng nhiều chiều trong PHP là gì?

Mảng đa chiều PHP còn được gọi là mảng của mảng. Nó cho phép bạn lưu trữ dữ liệu dạng bảng trong một mảng. Mảng đa chiều PHP có thể được biểu diễn dưới dạng ma trận được biểu diễn bằng hàng * cột. . Ví dụ mảng đa chiều PHP

Làm cách nào tôi có thể tạo một mảng nhiều chiều thành một mảng trong PHP?

Xin chào, Dòng duy nhất này sẽ làm điều đó. $array = array_column($array, 'plan'); Đối số đầu tiên là một mảng. Đối số thứ hai là một khóa mảng.