Php lấy tất cả các khóa của mảng nhiều chiều

Tuy nhiên, đôi khi bạn muốn lưu trữ các giá trị có nhiều hơn một khóa. Đối với điều này, chúng ta có các mảng đa chiều


PHP - Mảng đa chiều

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

Kích thước của một mảng cho biết số lượng chỉ số bạn cần để chọn một phần tử

  • Đối với mảng hai chiều, bạn cần hai chỉ số để chọn một phần tử
  • Đối với mảng ba chiều, bạn cần ba chỉ số để chọn một phần tử


PHP - Mảng hai chiều

Mảng hai chiều là mảng của mảng (mảng ba chiều là mảng của mảng của mảng)

Đầu tiên, hãy nhìn vào bảng sau

NameStockSoldVolvo2218BMW1513Saab52Land Rover1715

Chúng ta có thể lưu trữ dữ liệu từ bảng trên trong một mảng hai chiều, như thế này

$cars = mảng (
  mảng("Volvo",22,18),
  mảng("BMW",15,13),
  array("Saab",5,2),
  array("Land Rover",17,15)
);

Bây giờ mảng hai chiều $cars chứa bốn mảng và nó có hai chỉ số. hàng và cột

Để có quyền truy cập vào các phần tử của mảng $cars, chúng ta phải trỏ đến hai chỉ số (hàng và cột)

Ví dụ

echo $cars[0][0]. ". Trong kho. ". $car[0][1]. ", đã bán. ". $car[0][2]. ".
";
echo $cars[1][0]. ". Trong kho. ". $car[1][1]. ", đã bán. ". $car[1][2]. ".
";
echo $cars[2][0]. ". Trong kho. ". $car[2][1]. ", đã bán. ". $car[2][2]. ".
";
echo $cars[3][0]. ". Trong kho. ". $car[3][1]. ", đã bán. ". $car[3][2]. ".
";
?>

Tự mình thử »

Chúng ta cũng có thể đặt một vòng lặp for bên trong một vòng lặp for khác để lấy các phần tử của mảng $cars (chúng ta vẫn phải trỏ đến hai chỉ số)

Mục đích của mảng là lưu trữ dữ liệu một cách có tổ chức và cho phép truy cập dễ dàng bằng chỉ mục hoặc khóa. Bạn đã học về mảng một chiều trong bài học trước. Mở rộng cùng một mảng, hãy tưởng tượng nếu bạn có thể lưu trữ dữ liệu theo hàng và cột. Có thể lưu trữ các chiều khác nhau của dữ liệu trong một mảng với mảng nhiều chiều. Nó có thể được xem như một mảng với trong một mảng khác. Nói tóm lại, một mảng lồng nhau là một mảng nhiều chiều

Không thể biểu diễn dữ liệu nhiều chiều trong mảng một chiều. Vì vậy, chúng ta cần một mảng lồng nhau. Đây là cú pháp của mảng nhiều chiều-

$MultiDimenArray-Name=array( [key=>] mảng( [key=>]array…. )))

Bạn có thể định nghĩa một mảng như một phần tử của một mảng. Một mảng được lồng trong một mảng khác có thể được tạo bằng một khóa chuỗi giống như một mảng kết hợp hoặc không có khóa. Nếu không có khóa nào được chỉ định thì các giá trị chỉ mục sẽ tự động được phân bổ cho các phần tử mảng giống như một mảng được lập chỉ mục

Ví dụ về Mảng đa chiều PHP

Nếu bạn muốn lưu trữ dữ liệu của những người bán hàng khác nhau ở các thành phố khác nhau trong các quý khác nhau của năm, mảng đa chiều PHP sẽ là một công cụ hữu ích

nhân viên bán hàng. Andy

Quý 1Quý 2Quý 3Quý 4New York36239888Chicago78564537Denver34783621

nhân viên bán hàng. Bob

Quý 1Quý 2Quý 3Quý 4New York22677198Chicago76538361Denver45692345

nhân viên bán hàng. Chris

Quý một Quý hai Quý ba Quý bốnNew York22675645Chicago76537836Denver22677198

Mảng đa chiều có phím

Trong ví dụ sau, các phần tử mảng lồng nhau được liên kết với các khóa. Vì vậy, trong khi truy cập chúng, các khóa phải được sử dụng giống như bạn đã làm trong mảng kết hợp


	array("NewYork"=>array("Q1"=>36,"Q2"=>23,"Q3"=>98,"Q4"=>88),
	      "Chicago"=>array("Q1"=>78,"Q2"=>56,"Q3"=>45,"Q4"=>37),
	      "Denver"=>array("Q1"=>34,"Q2"=>78,"Q3"=>36,"Q4"=>21)),
		"Bob"=>
		array("NewYork"=>array("Q1"=>22,"Q2"=>67,"Q3"=>71,"Q4"=>98),
		"Chicago"=>array("Q1"=>76,"Q2"=>53,"Q3"=>83,"Q4"=>61),
		"Denver"=>array("Q1"=>45,"Q2"=>69,"Q3"=>23,"Q4"=>46)	),
		"Chris"=>array( NewYork"=>array("Q1"=>22,"Q2"=>67,"Q3"=>56,"Q4"=>45),
		"Chicago"=>array("Q1"=>76,"Q2"=>53,"Q3"=>78,"Q4"=>36),
		"Denver"=>array("Q1"=>22,"Q2"=>67,"Q3"=>71,"Q4"=>98)));
				
echo $SalesData["Andy"]["Chicago"]["Q3"]. ',';	
echo $SalesData["Andy"]["NewYork"]["Q4"].",";	
echo $SalesData["Bob"]["Denver"]["Q1"].",";	
echo $SalesData["Bob"]["Chicago"]["Q2"].",";	
echo $SalesData["Chris"]["Denver"]["Q1"].",";	
echo $SalesData["Chris"]["NewYork"]["Q4"];
?>

Php lấy tất cả các khóa của mảng nhiều chiều

Mảng đa chiều có chỉ mục

Khi bạn không chỉ định khóa trong khi tạo mảng đa chiều PHP, các chỉ mục sẽ tự động được gán cho các phần tử. Bây giờ bạn có thể sử dụng các chỉ mục giống như cách bạn đã làm với mảng một chiều. Bạn có thể sử dụng Vòng lặp For/Vòng lặp While để lặp qua mảng lồng nhau và sử dụng các phần tử như trong mã ví dụ bên dưới

Làm cách nào để lấy khóa từ mảng đa chiều trong PHP?

Sử dụng vòng lặp foreach . Chúng ta có thể sử dụng vòng lặp foreach để truy xuất giá trị của từng khóa được liên kết bên trong mảng kết hợp đa chiều.

Làm cách nào để chỉ lấy các khóa từ mảng trong PHP?

Hàm array_keys() trả về một mảng chứa các khóa.

Làm cách nào để lấy giá trị từ mảng đa chiều trong PHP mà không cần foreach?

Nếu bạn đang sử dụng PHP 5. 5+, bạn có thể sử dụng array_column() , như vậy. $result = array_column($foo, 'type'); . $result = array_values(array_column($foo, 'type'));

Làm cách nào để lấy giá trị khóa của một mảng trong PHP?

Nếu bạn có một giá trị và muốn tìm khóa, hãy sử dụng array_search() như thế này. $arr = mảng ('đầu tiên' => 'a', 'thứ hai' => 'b', ); .