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
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]. ".
";
?>
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ố]
________số 8
// Prior to 7.1.0, the only equivalent alternative is using list[] construct
list[$zero, $one, $two] = small_numbers[];
if [in_array[$test_variable, ['value1', 'value2', 'value3', 'value4']] {
// do something if $test_variable is equal to one of the strings in the array
}
0 if [in_array[$test_variable, ['value1', 'value2', 'value3', 'value4']] {
// do something if $test_variable is equal to one of the strings in the array
}
1if [in_array[$test_variable, ['value1', 'value2', 'value3', 'value4']] {
// do something if $test_variable is equal to one of the strings in the array
}
2 Khi so sánh một biến có nhiều giá trị, hãy xem xét sử dụng
if [in_array[$test_variable, ['value1', 'value2', 'value3', 'value4']] {
// do something if $test_variable is equal to one of the strings in the array
}
3, thay vì các biểu thức phức tạp if [in_array[$test_variable, ['value1', 'value2', 'value3', 'value4']] {
// do something if $test_variable is equal to one of the strings in the array
}
4Tôi thích mã rõ ràng, dễ đọc, đó là lý do tại sao tôi không thích những câu lệnh
if [in_array[$test_variable, ['value1', 'value2', 'value3', 'value4']] {
// do something if $test_variable is equal to one of the strings in the array
}
4 có biểu thức phức tạp. Ví dụ: hãy xem xét đoạn mã sau, đang kiểm tra một biến dựa trên một số giá trịif [$test_variable === 'value1' || $test_variable === 'value2' || $test_variable === 'value3' || $test_variable === 'value4'] {
// do something if $test_variable is equal to one of the strings
}
Điều này không đẹp và chắc chắn không cảm thấy rất KHÔ
Sử dụng in_array[] làm Điều kiện
Bây giờ hãy xem xét đoạn mã sau, lần này sử dụng hàm
if [in_array[$test_variable, ['value1', 'value2', 'value3', 'value4']] {
// do something if $test_variable is equal to one of the strings in the array
}
6 làm biểu thức điều kiện của câu lệnh if [in_array[$test_variable, ['value1', 'value2', 'value3', 'value4']] {
// do something if $test_variable is equal to one of the strings in the array
}
4if [in_array[$test_variable, ['value1', 'value2', 'value3', 'value4']] {
// do something if $test_variable is equal to one of the strings in the array
}
Theo tôi, đây là một giải pháp rõ ràng và dễ đọc hơn nhiều, đặc biệt nếu mã được duy trì bởi một nhóm các nhà phát triển, trong đó có thể lập trình viên đã viết mã sẽ không phải là người duy trì nó
Có thể tiến thêm một bước bằng cách trước tiên lưu trữ mảng trong một biến, sau đó sử dụng nó làm đối số, như sau
$test_array = [
'value1',
'value2',
'value3',
'value4'
];
if [in_array[$test_variable, $test_array] {
// do something if $test_variable is equal to one of the strings in $test_array
}
Cách tiếp cận này rất rõ ràng và cực kỳ dễ đọc, đặc biệt nếu bản thân các mục của mảng trở nên phức tạp hơn
Các phương pháp khác
Sử dụng
if [in_array[$test_variable, ['value1', 'value2', 'value3', 'value4']] {
// do something if $test_variable is equal to one of the strings in the array
}
6 chỉ là một cách để cải thiện khả năng đọc mã, một cách khác là câu lệnh if [in_array[$test_variable, ['value1', 'value2', 'value3', 'value4']] {
// do something if $test_variable is equal to one of the strings in the array
}
0, sẽ xử lý sự phức tạp của câu lệnh if [in_array[$test_variable, ['value1', 'value2', 'value3', 'value4']] {
// do something if $test_variable is equal to one of the strings in the array
}
4. Đây là một cách để viết đoạn mã bằng cách sử dụng if [in_array[$test_variable, ['value1', 'value2', 'value3', 'value4']] {
// do something if $test_variable is equal to one of the strings in the array
}
2switch [$test_variable] {
case 'value1':
case 'value2':
case 'value3':
case 'value4':
$value_exists = true;
break;
default:
$value_exists = false;
}
if [$value_exists] {
// do something if $value_exists is true
}
Tuy nhiên, sở thích cá nhân của tôi là sử dụng in_array, vì nó sạch hơn
kết thúc
Nếu bạn cho rằng cơ sở mã của mình cần tái cấu trúc, để cải thiện khả năng đọc [và hiệu suất], vui lòng liên hệ và chúng tôi sẽ sẵn lòng trợ giúp. Chúng tôi có nhiều năm kinh nghiệm lập trình, bằng nhiều ngôn ngữ, bao gồm PHP, Java, JavaScript và [S]CSS. Chúng tôi cũng chuyên phát triển WordPress, phát triển các chủ đề và plugin tùy chỉnh, đồng thời trợ giúp khách hàng về mọi cách thức hoạt động, bao gồm tối ưu hóa công cụ tìm kiếm