Làm cách nào để tìm kiếm giá trị từ mảng hai chiều trong php?

Để xử lý việc tìm kiếm một mảng nhiều chiều, bạn có thể sử dụng câu lệnh

$id = "111";
foreach [$users as $k => $v] {
    if [$v["uid"] === $id] {
        print $users[$k];
    }
}
4 hoặc hàm
$id = "111";
foreach [$users as $k => $v] {
    if [$v["uid"] === $id] {
        print $users[$k];
    }
}
0

Một mảng đa chiều PHP có thể được tìm kiếm để xem nó có giá trị nhất định hay không

Hãy xem một ví dụ về việc thực hiện tìm kiếm. Giả sử bạn có một mảng nhiều chiều với cấu trúc sau

$users = [
    [
        "uid" => "111",
        "name" => "Nathan",
        "age" => 29,
    ],
    [
        "uid" => "254",
        "name" => "Jessie",
        "age" => 25,
    ],
    [
        "uid" => "305",
        "name" => "Michael",
        "age" => 30,
    ],
];

Để tìm kiếm mảng theo giá trị của nó, bạn có thể sử dụng câu lệnh

$id = "111";
foreach [$users as $k => $v] {
    if [$v["uid"] === $id] {
        print $users[$k];
    }
}
4

Bạn cần lặp qua mảng và xem liệu một trong các mảng con có giá trị cụ thể không

Ví dụ: giả sử bạn muốn lấy mảng có giá trị

$id = "111";
foreach [$users as $k => $v] {
    if [$v["uid"] === $id] {
        print $users[$k];
    }
}
2 là
$id = "111";
foreach [$users as $k => $v] {
    if [$v["uid"] === $id] {
        print $users[$k];
    }
}
3

$id = "111";
foreach [$users as $k => $v] {
    if [$v["uid"] === $id] {
        print $users[$k];
    }
}

Lưu ý rằng toán tử so sánh trong đoạn mã trên sử dụng

$id = "111";
foreach [$users as $k => $v] {
    if [$v["uid"] === $id] {
        print $users[$k];
    }
}
4 gấp ba lần

Điều này có nghĩa là loại giá trị được so sánh phải giống nhau

Đoạn mã trên sẽ tạo ra đầu ra sau

Array
[
    [uid] => 111
    [name] => Nathan
    [age] => 29
]

Trong PHP5. 5 trở lên, bạn cũng có thể sử dụng hàm

$id = "111";
foreach [$users as $k => $v] {
    if [$v["uid"] === $id] {
        print $users[$k];
    }
}
0 kết hợp với hàm
$id = "111";
foreach [$users as $k => $v] {
    if [$v["uid"] === $id] {
        print $users[$k];
    }
}
6 để tìm mảng thỏa mãn điều kiện

Xem ví dụ bên dưới

$name = "Michael";
$key = array_search[$name, array_column[$users, "name"]];
print_r[$users[$key]];

Đoạn mã trên sẽ tạo ra đầu ra sau

$users = [
    [
        "uid" => "111",
        "name" => "Nathan",
        "age" => 29,
    ],
    [
        "uid" => "254",
        "name" => "Jessie",
        "age" => 25,
    ],
    [
        "uid" => "305",
        "name" => "Michael",
        "age" => 30,
    ],
];
0

Hãy tạo một chức năng tùy chỉnh từ mã tìm kiếm để bạn có thể thực hiện tìm kiếm động hơn dựa trên khóa và giá trị

Hàm tùy chỉnh này chấp nhận ba tham số

  1. $id = "111";
    foreach [$users as $k => $v] {
        if [$v["uid"] === $id] {
            print $users[$k];
        }
    }
    
    7 bạn muốn tìm kiếm
  2. $id = "111";
    foreach [$users as $k => $v] {
        if [$v["uid"] === $id] {
            print $users[$k];
        }
    }
    
    8 bạn muốn chìa khóa có
  3. $id = "111";
    foreach [$users as $k => $v] {
        if [$v["uid"] === $id] {
            print $users[$k];
        }
    }
    
    9 bạn muốn tìm kiếm

Hàm có thể được viết như sau

$users = [
    [
        "uid" => "111",
        "name" => "Nathan",
        "age" => 29,
    ],
    [
        "uid" => "254",
        "name" => "Jessie",
        "age" => 25,
    ],
    [
        "uid" => "305",
        "name" => "Michael",
        "age" => 30,
    ],
];
4

Để xử lý trường hợp không tìm thấy giá trị cụ thể, bạn cần thêm điều kiện

Array
[
    [uid] => 111
    [name] => Nathan
    [age] => 29
]
0 vào hàm

Bạn có thể trả lại

Array
[
    [uid] => 111
    [name] => Nathan
    [age] => 29
]
1 hoặc
Array
[
    [uid] => 111
    [name] => Nathan
    [age] => 29
]
2 khi không tìm thấy
Array
[
    [uid] => 111
    [name] => Nathan
    [age] => 29
]
3

$users = [
    [
        "uid" => "111",
        "name" => "Nathan",
        "age" => 29,
    ],
    [
        "uid" => "254",
        "name" => "Jessie",
        "age" => 25,
    ],
    [
        "uid" => "305",
        "name" => "Michael",
        "age" => 30,
    ],
];
9

Bây giờ bạn có thể sử dụng hàm

Array
[
    [uid] => 111
    [name] => Nathan
    [age] => 29
]
4 bất cứ lúc nào bạn cần tìm kiếm một mảng nhiều chiều

Dưới đây là một số ví dụ

$id = "111";
foreach [$users as $k => $v] {
    if [$v["uid"] === $id] {
        print $users[$k];
    }
}
1

Đoạn mã trên sẽ tạo ra đầu ra sau

$id = "111";
foreach [$users as $k => $v] {
    if [$v["uid"] === $id] {
        print $users[$k];
    }
}
2

Bây giờ bạn đã học cách tìm kiếm một mảng nhiều chiều trong PHP

Khi cần tìm một mảng có giá trị cụ thể, bạn chỉ cần gọi hàm

Array
[
    [uid] => 111
    [name] => Nathan
    [age] => 29
]
4 ở trên

Làm cách nào để tìm kiếm phần tử trong mảng đa chiều PHP?

Tìm kiếm mảng nhiều chiều bằng cách sử dụng phương thức array_search[] . Array_search[] là một hàm sẵn có tìm kiếm một giá trị nhất định liên quan đến cột/khóa mảng đã cho. Hàm này chỉ trả về chỉ mục khóa thay vì đường dẫn tìm kiếm.

Làm cách nào để tìm kiếm giá trị mảng trong PHP?

The array_search[] là một hàm có sẵn trong PHP được sử dụng để tìm kiếm một giá trị cụ thể trong một mảng và nếu giá trị đó . Nếu có nhiều hơn một giá trị thì khóa của giá trị khớp đầu tiên sẽ được trả về.

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

Truy xuất giá trị. Chúng ta có thể lấy giá trị của mảng nhiều chiều bằng phương pháp sau. .
Sử dụng phím. Chúng ta có thể sử dụng khóa của mảng kết hợp để lấy trực tiếp giá trị dữ liệu. .
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

Sự khác biệt giữa In_array và Array_search là gì?

Sự khác biệt chính giữa cả hai hàm là array_search[] thường trả về khóa hoặc chỉ mục trong khi in_array[] trả về TRUE hoặc FALSE tùy theo kết quả tìm thấy trong tìm kiếm.

Chủ Đề