Mảng đa chiều trong PHP là gì?

Câu trả lời ngắn gọn là không, bạn không thể làm điều đó mà không cần lặp lại ít nhất nếu 'chiều thứ hai' có thể ở bất kỳ đâu. Nếu nó phải ở mục đầu tiên, bạn chỉ cần làm

is_array($arr[0]);

Tuy nhiên, cách chung hiệu quả nhất mà tôi có thể tìm thấy là sử dụng vòng lặp foreach trên mảng, rút ​​ngắn mạch bất cứ khi nào tìm thấy một lần truy cập (ít nhất là vòng lặp ngầm tốt hơn so với vòng lặp trực tiếp for())

$ more multi.php
 'a',2 => 'b',3 => array(1,2,3));
$b = array(1 => 'a',2 => 'b');
$c = array(1 => 'a',2 => 'b','foo' => array(1,array(2)));

function is_multi($a) {
    $rv = array_filter($a,'is_array');
    if(count($rv)>0) return true;
    return false;
}

function is_multi2($a) {
    foreach ($a as $v) {
        if (is_array($v)) return true;
    }
    return false;
}

function is_multi3($a) {
    $c = count($a);
    for ($i=0;$i<$c;$i++) {
        if (is_array($a[$i])) return true;
    }
    return false;
}
$iters = 500000;
$time = microtime(true);
for ($i = 0; $i < $iters; $i++) {
    is_multi($a);
    is_multi($b);
    is_multi($c);
}
$end = microtime(true);
echo "is_multi  took ".($end-$time)." seconds in $iters times\n";

$time = microtime(true);
for ($i = 0; $i < $iters; $i++) {
    is_multi2($a);
    is_multi2($b);
    is_multi2($c);
}
$end = microtime(true);
echo "is_multi2 took ".($end-$time)." seconds in $iters times\n";
$time = microtime(true);
for ($i = 0; $i < $iters; $i++) {
    is_multi3($a);
    is_multi3($b);
    is_multi3($c);
}
$end = microtime(true);
echo "is_multi3 took ".($end-$time)." seconds in $iters times\n";
?>

$ php multi.php
is_multi  took 7.53565130424 seconds in 500000 times
is_multi2 took 4.56964588165 seconds in 500000 times
is_multi3 took 9.01706600189 seconds in 500000 times

Vòng lặp ngầm định, nhưng chúng tôi không thể đoản mạch ngay khi tìm thấy kết quả phù hợp

$ more multi.php
 'a',2 => 'b',3 => array(1,2,3));
$b = array(1 => 'a',2 => 'b');

function is_multi($a) {
    $rv = array_filter($a,'is_array');
    if(count($rv)>0) return true;
    return false;
}

var_dump(is_multi($a));
var_dump(is_multi($b));
?>

$ php multi.php
bool(true)
bool(false)

Hộp đại diện cho chính mảng trong khi khoảng trống chứa sôcôla đại diện cho các giá trị được lưu trữ trong mảng

Sơ đồ dưới đây minh họa cú pháp trên

Trong hướng dẫn này, bạn sẽ học-

Mảng số

Mảng số sử dụng số làm khóa truy cập

Khóa truy cập là tham chiếu đến khe bộ nhớ trong biến mảng

Access key được sử dụng bất cứ khi nào chúng ta muốn đọc hoặc gán giá trị mới cho một phần tử mảng

Dưới đây là cú pháp tạo mảng số trong php

Ví dụ về mảng

Hoặc là

 value, …);
?>

NƠI ĐÂY,

  • “$variable_name…” là tên của biến
  • “[n]” là số chỉ mục truy cập của phần tử
  • “giá trị” là giá trị được gán cho phần tử mảng

Bây giờ hãy xem một ví dụ về một mảng số

Giả sử chúng ta có 5 bộ phim mà chúng ta muốn lưu trữ trong các biến mảng

Chúng ta có thể sử dụng ví dụ hiển thị bên dưới để làm điều đó

Nơi đây,

Mảng đa chiều trong PHP là gì?

Mỗi bộ phim được cung cấp một số chỉ mục được sử dụng để truy xuất hoặc sửa đổi giá trị của nó. Quan sát đoạn mã sau-

đầu ra

Once upon a time in China Eastern Condors

Như bạn có thể thấy từ các ví dụ trên, làm việc với mảng trong PHP khi xử lý nhiều giá trị có cùng bản chất là rất dễ dàng và linh hoạt

Ngoài ra, các biến mảng trên cũng có thể được tạo bằng mã sau

________số 8_______

đầu ra

Replacement Killers

Mảng kết hợp PHP

Mảng kết hợp khác với mảng số theo nghĩa là mảng kết hợp sử dụng tên mô tả cho khóa id

Dưới đây là cú pháp tạo mảng kết hợp trong php

 value);
?>

NƠI ĐÂY,

  • “$variable_name…” là tên của biến
  • “[‘key_name’]” là số chỉ mục truy cập của phần tử
  • “giá trị” là giá trị được gán cho phần tử mảng

Giả sử rằng chúng tôi có một nhóm người và chúng tôi muốn chỉ định giới tính của từng người dựa trên tên của họ

Chúng ta có thể sử dụng một mảng kết hợp để làm điều đó. Đoạn mã dưới đây giúp chúng ta làm điều đó

 "Female", "John" => "Male", "Mirriam" => "Female");
print_r($persons); 
echo ""; 
echo "Mary is a " . $persons["Mary"];
?>

NƠI ĐÂY,

Mảng đa chiều trong PHP là gì?

đầu ra

Array ( [Mary] => Female [John] => Male [Mirriam] => Female ) Mary is a Female

Mảng kết hợp cũng rất hữu ích khi truy xuất dữ liệu từ cơ sở dữ liệu

Tên trường được sử dụng làm khóa id

Mảng đa chiều trong PHP

Đây là những mảng chứa các mảng lồng nhau khác

Ưu điểm của mảng nhiều chiều là chúng cho phép chúng ta nhóm các dữ liệu có liên quan lại với nhau

Bây giờ chúng ta hãy xem một ví dụ thực tế cài đặt một mảng nhiều chiều php

Bảng bên dưới hiển thị danh sách phim theo thể loại

Tiêu đề phimThể loạiPink PantherPhim hàiJohn EnglishPhim hàiDie HardHành độngExpendablesHành độngChúa tể của những chiếc nhẫnSử thiRomeo và JulietLãng mạnSee no evil hear no evilHài

Thông tin trên có thể được biểu diễn dưới dạng mảng nhiều chiều. Đoạn mã dưới đây cho thấy việc thực hiện

 value, …);
?>
0

NƠI ĐÂY,

Mảng đa chiều trong PHP là gì?

đầu ra

 value, …);
?>
1

Một cách khác để xác định cùng một mảng như sau

 value, …);
?>
2

đầu ra

 value, …);
?>
3

Ghi chú. mảng số phim đã được lồng vào bên trong mảng kết hợp danh mục

Mảng PHP. nhà điều hành

Toán tửTênMô tảCách thực hiệnOutputx + yUnionKết hợp các phần tử từ cả hai mảng
 value, …);
?>
4Array([id] => 1 [value] => 10)X == yEqualSo sánh hai mảng nếu chúng bằng nhau và trả về true nếu có.
 value, …);
?>
5True hoặc 1X === yGiống nhauSo sánh cả giá trị và kiểu dữ liệu
 value, …);
?>
6False hoặc 0X. = y, x <> y Không bằng ________4 _______7 Sai hoặc 0X. == yKhông giống nhau_______4_______8True hoặc 1

Hàm mảng PHP

chức năng đếm

Hàm đếm dùng để đếm số phần tử mà một mảng php chứa. Đoạn mã dưới đây cho thấy việc thực hiện

 value, …);
?>
9

đầu ra

0

hàm is_array

Hàm is_array được sử dụng để xác định xem một biến có phải là một mảng hay không. Bây giờ hãy xem một ví dụ triển khai các hàm is_array

1

đầu ra

2

Loại

Hàm này được sử dụng để sắp xếp mảng bằng cách sử dụng các giá trị. Ví dụ sau minh họa việc sử dụng nó

Mảng nhiều chiều với ví dụ là gì?

Mảng nhiều chiều là mảng có nhiều cấp hoặc nhiều chiều . Ví dụ: mảng 2D hoặc mảng hai chiều là một mảng của các mảng, nghĩa là nó là một ma trận gồm các hàng và cột (nghĩ về một bảng). Một mảng 3D thêm một chiều khác, biến nó thành một mảng của mảng của mảng.

Mảng nhiều chiều là gì?

Mảng nhiều chiều là phần mở rộng của ma trận 2-D và sử dụng các chỉ số con bổ sung để lập chỉ mục . Ví dụ, một mảng 3-D sử dụng ba chỉ số dưới. Hai chiều đầu tiên giống như một ma trận, nhưng chiều thứ ba đại diện cho các trang hoặc trang tính của các phần tử.

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

Bạn tạo một mảng nhiều chiều sử dụng cấu trúc array() , giống như tạo một mảng thông thường. Sự khác biệt là mỗi phần tử trong mảng bạn tạo chính là một mảng. Ví dụ. $myArray = mảng(mảng(giá trị1,giá trị2,giá trị3),mảng(giá trị4,giá trị5,giá trị6),mảng(giá trị7,giá trị8,giá trị9));

Làm cách nào để kiểm tra xem một mảng là PHP đơn hay đa chiều?

Hàm 'rsort' có thể dùng để kiểm tra xem một mảng có đa chiều hay không . Phải mất một tham số, tôi. e mảng cần kiểm tra và trả về có hoặc không tùy thuộc vào bản chất của mảng.