首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >按值搜索关联数组

按值搜索关联数组
EN

Stack Overflow用户
提问于 2012-09-12 03:58:16
回答 8查看 61.2K关注 0票数 30

我正在从flickrs API中获取一些JSON。我的问题是exif数据的顺序取决于相机的不同。所以我不能硬编码一个数组号来获取,例如,下面的相机型号。PHP有没有内置的方法来搜索关联数组的值并返回匹配的数组?在下面的示例中,我想搜索[label] => Model并获取[_content] => NIKON D5100

如果你想让我详述,请告诉我。

代码语言:javascript
复制
print_r($exif['photo']['exif']);

结果:

代码语言:javascript
复制
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
                )

        )
EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2012-09-12 04:02:03

据我所知,没有这样的功能。虽然有array_search,但它并不能完全满足您的需求。

我认为最简单的方法是自己写一个循环。

代码语言:javascript
复制
function search_exif($exif, $field)
{
    foreach ($exif as $data)
    {
        if ($data['label'] == $field)
            return $data['raw']['_content'];
    }
}

$camera = search_exif($exif['photo']['exif'], 'model');
票数 22
EN

Stack Overflow用户

发布于 2015-07-22 12:31:19

代码语言:javascript
复制
$key = array_search('model', array_column($data, 'label'));

在较新版本的PHP中,特别是PHP 5 >= 5.5.0中,上述函数将起作用。

票数 65
EN

Stack Overflow用户

发布于 2014-12-10 03:21:17

$key = array_search('Model', array_map(function($data) {return $data['label'];}, $exif))

array_map()函数将数组的每个值发送到用户创建的函数,并返回包含用户创建的函数提供的新值的数组。在这种情况下,我们将返回标签。

array_search()函数在数组中搜索值并返回键。(在本例中,我们在从array_map返回的数组中搜索标签值'Model')

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12376992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档