Hướng dẫn php array search in column - tìm kiếm mảng php trong cột

8

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi có một mảng như dưới đây, có nhiều cột. Tôi muốn tìm kiếm trong cột đầu tiên cho một giá trị cụ thể và có các hàng phù hợp được trả về. Điều đó có thể làm được không?

Ví dụ:

Array (
[0] => Array ( [id] => 1 [column2] => value2 [column3] => value3 [column4] => value4 [column5] => value5 ) 
[1] => Array ( [id] => 1 [column2] => value2 [column3] => value3 [column4] => value4 [column5] => value5 ) 
[2] => Array ( [id] => 2 [column2] => value2 [column3] => value3 [column4] => value4 [column5] => value5 
)

Vì vậy, giả sử tôi muốn tìm kiếm cột "ID" cho "1" và hiển thị kết quả. Điều này có thể giải quyết như thế nào? Cảm ơn bạn rất nhiều!

Đã hỏi ngày 28 tháng 6 năm 2014 lúc 19:48Jun 28, 2014 at 19:48

Hướng dẫn php array search in column - tìm kiếm mảng php trong cột

0

Nếu bạn đang sử dụng PHP >= 5.5, thì bạn có thể sử dụng Array_Column () mới, kết hợp với Array_Keys () và Array_Map ().array_column(), in conjunction with array_keys() and array_map().

Cho mảng của bạn, $array:

$keys = array_keys(array_column($array, 'id'), 1);
$new_array = array_map(function($k) use ($array){return $array[$k];}, $keys);

Xem bản demo

Đã trả lời ngày 28 tháng 6 năm 2014 lúc 20:10Jun 28, 2014 at 20:10

Hướng dẫn php array search in column - tìm kiếm mảng php trong cột

Mark Millermark MillerMark Miller

7.4122 Huy hiệu vàng15 Huy hiệu bạc21 Huy hiệu đồng2 gold badges15 silver badges21 bronze badges

0

Vì bạn có một Array lồng nhau, bạn cần hai lần lặp lại:

$filtered = array();
$rows = Your Array;
foreach($rows as $index => $columns) {
    foreach($columns as $key => $value) {
        if ($key == 'id' && $value == '1') {
            $filtered[] = $columns;
        }
    }
}

Điều này nên làm công việc.

Đã trả lời ngày 28 tháng 6 năm 2014 lúc 19:54Jun 28, 2014 at 19:54

Hướng dẫn php array search in column - tìm kiếm mảng php trong cột

Mario Wernermario WernerMario Werner

1.69513 Huy hiệu bạc24 Huy hiệu đồng13 silver badges24 bronze badges

2

Tôi đã tìm thấy một giải pháp đơn giản hơn nhiều mà tôi nghĩ là đáng để chia sẻ với thế giới

in_array(1, array_column($yourArray, 'id'));

Đã kiểm tra trên PHP> = 5.5

Đã trả lời ngày 24 tháng 4 năm 2018 lúc 17:40Apr 24, 2018 at 17:40

MontrealdevonemontrealdevoneMontrealDevOne

1.0133 Huy hiệu vàng17 Huy hiệu bạc 30 Huy hiệu Đồng3 gold badges17 silver badges30 bronze badges

1

Sử dụng chức năng này:

global $result;
function array_searc_result($array,$key,$value)
{
    global $result;
    foreach($array as $k=>$v)
    {
        if(array_key_exists($key,$v) && ($v[$key] == $value))
        {
            $result[] = $v;
        }
    }
    return $result;;
}
$data = array_searc_result($array,'id',2);
echo '
';
print_r($data);
echo '
';

$ mảng là biến mảng đã cho của bạn.

Đã trả lời ngày 28 tháng 6 năm 2014 lúc 19:58Jun 28, 2014 at 19:58

1

Các bước này sẽ luôn trả lại một hàng trong một mảng sử dụng cột ID duy nhất (trong ví dụ này trong cột đầu tiên, 0)

1) Nhận một mảng ID chỉ

$ids = array_column($my_table, 0);

2) Tìm hàng với ID của tôi

$keys = array_keys(array_column($array, 'id'), 1);
$new_array = array_map(function($k) use ($array){return $array[$k];}, $keys);
0 (trong đó $ id là một id nhất định)

3) Sau đó tôi có thể sử dụng

$keys = array_keys(array_column($array, 'id'), 1);
$new_array = array_map(function($k) use ($array){return $array[$k];}, $keys);
1 (trong đó n là một cột đã cho)

Đã trả lời ngày 29 tháng 3 năm 2020 lúc 10:31Mar 29, 2020 at 10:31

Hướng dẫn php array search in column - tìm kiếm mảng php trong cột

ChrischrisChris

Phù hiệu bằng đồng 1133 bronze badges

Tôi sử dụng người trợ giúp này để tìm các trận đấu theo khóa / giá trị:

function array_search_by_key($array, $key, $value) {
    if(!is_array($array)) {
        return [];
    }
    $results = [];
    foreach($array as $element) {
        if(isset($element[$key]) && $element[$key] == $value) {
            $results[] = $element;
        }
    }
    return $results;
}

Đã trả lời ngày 7 tháng 1 năm 2019 lúc 10:26Jan 7, 2019 at 10:26

Hướng dẫn php array search in column - tìm kiếm mảng php trong cột

TooltoolTool

11.8K15 Huy hiệu vàng68 Huy hiệu bạc120 Huy hiệu đồng15 gold badges68 silver badges120 bronze badges

Làm thế nào để bạn tìm kiếm một mảng?

Sử dụng bộ lọc nếu bạn muốn tìm tất cả các mục trong một mảng đáp ứng một điều kiện cụ thể. Sử dụng Tìm nếu bạn muốn kiểm tra xem ít nhất một mục đáp ứng một điều kiện cụ thể. Sử dụng bao gồm nếu bạn muốn kiểm tra xem một mảng có chứa một giá trị cụ thể không. Sử dụng indexof nếu bạn muốn tìm chỉ mục của một mục cụ thể trong một mảng.. Use find if you want to check if that at least one item meets a specific condition. Use includes if you want to check if an array contains a particular value. Use indexOf if you want to find the index of a particular item in an array.

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ề đúng hoặc sai theo kết quả kết quả tìm kiếm trong tìm kiếm.array_search() usually returns either key or index whereas in_array() returns TRUE or FALSE according to match found in search.

Array_Column là gì?

Array_column () trả về các giá trị từ một cột duy nhất của mảng, được xác định bởi cột_key.Tùy chọn, một index_key có thể được cung cấp để lập chỉ mục các giá trị trong mảng được trả về bởi các giá trị từ cột index_key của mảng đầu vào.returns the values from a single column of the array , identified by the column_key . Optionally, an index_key may be provided to index the values in the returned array by the values from the index_key column of the input array.

Làm thế nào để bạn kiểm tra xem một khóa có tồn tại trong một mảng PHP không?

Hàm ARRAY_KEY_EXISTS () PHP ARRAYarray_key_exists() Function The array_key_exists() function checks an array for a specified key, and returns true if the key exists and false if the key does not exist.