Php trong mảng nhiều giá trị

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ố]

________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
}
1

if [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
}
4

Tô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
}
4

if [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
}
2

switch [$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

Làm cách nào để lưu trữ nhiều giá trị trong một mảng trong PHP?

Để lưu trữ nhiều giá trị, có hai cách thực hiện tác vụ. Một cách là gán mỗi giá trị cho một biến duy nhất , và cách khác, hiệu quả hơn nhiều, là gán nhiều giá trị cho một biến. Đó là những gì chúng ta gọi là một mảng. Một mảng là một cách để lưu trữ nhiều giá trị trong một biến duy nhất.

Làm cách nào để nhân các giá trị mảng trong PHP?

Để nhân hai mảng, bạn phải thực hiện theo từng phần tử. không có vòng lặp lồng nhau liên quan. Ví dụ: nếu bạn muốn lấy $total[2] thì giá trị của nó là $office_price[2] * $office_quantity[2]. .
Điều gì sẽ xảy ra nếu các khóa không phải lúc nào cũng giống nhau cho cả hai mảng?.
Điều đó đáng nói, nhưng OP đang sử dụng và nhân các mảng được lập chỉ mục đơn giản

Làm cách nào để kiểm tra hai giá trị trong mảng trong PHP?

Hàm array_diff[] so sánh giá trị của hai [hoặc nhiều] mảng và trả về sự khác biệt. Hàm này so sánh các giá trị của hai [hoặc nhiều] mảng và trả về một mảng chứa các mục từ mảng1 không có trong mảng2 hoặc mảng3, v.v.

Làm cách nào để kiểm tra nhiều giá trị trong PHP?

PHP không hỗ trợ trả về nhiều giá trị trong một hàm . Bên trong một hàm khi câu lệnh return đầu tiên được thực thi, nó sẽ điều khiển trực tiếp trở lại hàm gọi và câu lệnh return thứ hai sẽ không bao giờ được thực thi.

Chủ Đề