Hướng dẫn array search php - mảng tìm kiếm php

33

Nội dung chính

  • Làm thế nào để bạn kiểm tra xem một giá trị có tồn tại trong một mảng kết hợp trong PHP không?
  • Array_Search trong PHP là gì?
  • Sự khác biệt giữa in_array và Array_Search là gì?
  • 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?

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.
Learn more.

Tôi đang tìm kiếm một số JSON từ API Flickrs. Vấn đề của tôi là dữ liệu EXIF ​​theo thứ tự khác nhau tùy thuộc vào máy ảnh. Vì vậy, tôi không thể mã hóa một số mảng để nhận, ví dụ, mô hình camera bên dưới. PHP có bất kỳ phương thức tích hợp nào để tìm kiếm thông qua các giá trị mảng kết hợp và trả về các mảng phù hợp không? Trong ví dụ của tôi dưới đây, tôi muốn tìm kiếm

print_r($exif['photo']['exif']);
2 và nhận

Array
(
    [0] => Array
        (
            [tagspace] => IFD0
            [tagspaceid] => 0
            [tag] => Make
            [label] => Make
            [raw] => Array
                (
                    [_content] => NIKON CORPORATION
                )

        )

    [1] => Array
        (
            [tagspace] => IFD0
            [tagspaceid] => 0
            [tag] => Model
            [label] => Model
            [raw] => Array
                (
                    [_content] => NIKON D5100
                )

        )

    [2] => Array
        (
            [tagspace] => IFD0
            [tagspaceid] => 0
            [tag] => XResolution
            [label] => X-Resolution
            [raw] => Array
                (
                    [_content] => 240
                )

            [clean] => Array
                (
                    [_content] => 240 dpi
                )

        )
0.

Xin vui lòng cho tôi biết nếu bạn muốn tôi giải thích.

print_r($exif['photo']['exif']);

Result:

Array
(
    [0] => Array
        (
            [tagspace] => IFD0
            [tagspaceid] => 0
            [tag] => Make
            [label] => Make
            [raw] => Array
                (
                    [_content] => NIKON CORPORATION
                )

        )

    [1] => Array
        (
            [tagspace] => IFD0
            [tagspaceid] => 0
            [tag] => Model
            [label] => Model
            [raw] => Array
                (
                    [_content] => NIKON D5100
                )

        )

    [2] => Array
        (
            [tagspace] => IFD0
            [tagspaceid] => 0
            [tag] => XResolution
            [label] => X-Resolution
            [raw] => Array
                (
                    [_content] => 240
                )

            [clean] => Array
                (
                    [_content] => 240 dpi
                )

        )

Hướng dẫn array search php - mảng tìm kiếm php

Ben

50.6K36 Huy hiệu vàng124 Huy hiệu bạc143 Huy hiệu đồng36 gold badges124 silver badges143 bronze badges36 gold badges124 silver badges143 bronze badges

Hỏi ngày 11 tháng 9 năm 2012 lúc 19:58Sep 11, 2012 at 19:58Sep 11, 2012 at 19:58

1

$key = array_search('model', array_column($data, 'label'));

Trong các phiên bản gần đây của PHP, cụ thể là PHP 5> = 5.5.0, hàm trên sẽ hoạt động.

Texelate

2.4323 Huy hiệu vàng22 Huy hiệu bạc31 Huy hiệu Đồng3 gold badges22 silver badges31 bronze badges3 gold badges22 silver badges31 bronze badges

Đã trả lời ngày 22 tháng 7 năm 2015 lúc 4:31Jul 22, 2015 at 4:31Jul 22, 2015 at 4:31

1

Theo hiểu biết của tôi không có chức năng như vậy. Có Array_Search, nhưng nó không hoàn toàn làm những gì bạn muốn.

Tôi nghĩ rằng cách dễ nhất sẽ là tự viết một vòng lặp.

function search_exif($exif, $field)
{
    foreach ($exif as $data)
    {
        if ($data['label'] == $field)
            return $data['raw']['_content'];
    }
}

$camera = search_exif($exif['photo']['exif'], 'model');

ANU

2701 Huy hiệu bạc13 Huy hiệu đồng1 silver badge13 bronze badges1 silver badge13 bronze badges

Đã trả lời ngày 11 tháng 9 năm 2012 lúc 20:02Sep 11, 2012 at 20:02Sep 11, 2012 at 20:02

GoleztrolgoleztrolGolezTrolGolezTrol

Huy hiệu vàng 113K1717 gold badges181 silver badges202 bronze badges17 gold badges181 silver badges202 bronze badges

3

Array
(
    [0] => Array
        (
            [tagspace] => IFD0
            [tagspaceid] => 0
            [tag] => Make
            [label] => Make
            [raw] => Array
                (
                    [_content] => NIKON CORPORATION
                )

        )

    [1] => Array
        (
            [tagspace] => IFD0
            [tagspaceid] => 0
            [tag] => Model
            [label] => Model
            [raw] => Array
                (
                    [_content] => NIKON D5100
                )

        )

    [2] => Array
        (
            [tagspace] => IFD0
            [tagspaceid] => 0
            [tag] => XResolution
            [label] => X-Resolution
            [raw] => Array
                (
                    [_content] => 240
                )

            [clean] => Array
                (
                    [_content] => 240 dpi
                )

        )
1

Hàm mảng_map () gửi từng giá trị của một mảng đến hàm do người dùng tạo và trả về một mảng có các giá trị mới, được đưa ra bởi hàm do người dùng tạo. Trong trường hợp này, chúng tôi đang trả lại nhãn.

Hàm Array_Search () Tìm kiếm một mảng cho một giá trị và trả về khóa. .

Đã trả lời ngày 9 tháng 12 năm 2014 lúc 19:21Dec 9, 2014 at 19:21Dec 9, 2014 at 19:21

5

Điều này sẽ khá tầm thường để thực hiện:

$model = '';

foreach ($exif['photo']['exif'] as $data) {
    if ($data['label'] == 'Model') {
        $model = $data['raw']['_content'];
        break;
    }
}

Đã trả lời ngày 11 tháng 9 năm 2012 lúc 20:01Sep 11, 2012 at 20:01Sep 11, 2012 at 20:01

Sean Brightsean sángSean BrightSean Bright

Huy hiệu vàng 116K1717 gold badges135 silver badges143 bronze badges17 gold badges135 silver badges143 bronze badges

1

foreach($exif['photo']['exif'] as $row) {
    foreach ($row as $k => $v) {
        if ($k == "label" AND $v == "Model")
            $needle[] = $row["raw"];
    }
}
print_r($needle);

Đã trả lời ngày 11 tháng 9 năm 2012 lúc 20:01Sep 11, 2012 at 20:01Sep 11, 2012 at 20:01

Sean Brightsean sángSean BrightMrSil

Huy hiệu vàng 116K1717 gold badges135 silver badges143 bronze badges6 silver badges12 bronze badges

1

foreach($exif['photo']['exif'] as $row) {
    foreach ($row as $k => $v) {
        if ($k == "label" AND $v == "Model")
            $needle[] = $row["raw"];
    }
}
print_r($needle);
 $array= [  "one" => ["a","b"],
            "two" => "c" ];

Sean Brightsean sángMrSil

print_r($exif['photo']['exif']);
0

Huy hiệu vàng 116K176 silver badges12 bronze badgesMar 1, 2019 at 20:41

ioannis.thioannis.thioannis.thioannis.th

MRSILMRSIL3 silver badges8 bronze badges

print_r($exif['photo']['exif']);
1

6086 Huy hiệu bạc12 Huy hiệu ĐồngMar 1, 2019 at 20:41Apr 19, 2021 at 1:42

Hàm sau, tìm kiếm trong một mảng kết hợp cả cho các giá trị chuỗi và giá trị bên trong các mảng khác. Ví dụ: với mảng sau3 silver badges8 bronze badges

Đã trả lời ngày 11 tháng 9 năm 2012 lúc 20:02Sep 11, 2012 at 20:02Sep 11, 2012 at 20:02

Làm thế nào để bạn kiểm tra xem một giá trị có tồn tại trong một mảng kết hợp trong PHP không?

GoleztrolgoleztrolGolezTrolin_array() function is an inbuilt function in PHP that is used to check whether a given value exists in an array or not. It returns TRUE if the given value is found in the given array, and FALSE otherwise.

Array_Search trong PHP là gì?

Huy hiệu vàng 113K1717 gold badges181 silver badges202 bronze badgesan inbuilt function in PHP that is used to search for a particular value in an array, and if the value is found then it returns its corresponding key. If there are more than one values then the key of the first matching value will be returned. Syntax: array_search($value, $array, strict_parameter)

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

Hàm mảng_map () gửi từng giá trị của một mảng đến hàm do người dùng tạo và trả về một mảng có các giá trị mới, được đưa ra bởi hàm do người dùng tạo. Trong trường hợp này, chúng tôi đang trả lại nhãn.array_search() usually returns either key or index whereas in_array() returns TRUE or FALSE according to match found in search.

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_Search () Tìm kiếm một mảng cho một giá trị và trả về khóa. .array_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.