使用键名搜索多维数组并返回结果

时间:2019-04-05 12:40:10

标签: php search multidimensional-array

我是PHP初学者,所以请耐心等待我。我花了几个小时来研究多维数组搜索中已经存在的许多线程,但是没有一个适合我的情况。听起来确实很简单,但是有点卡住了,因为我想按键名进行搜索并针对它检索值。

尝试了一些方法,例如array_column,但返回一个空数组。 我只是想遍历数组,从所有数组元素中查找键名称为:“ largeImageURL”,并想返回其值。

{
"total": 4692,
"totalHits": 500,
"hits": [
{
    "id": 195893,
    "pageURL": "https://pixabay.com/en/blossom-bloom-flower-195893/",
    "type": "photo",
    "tags": "blossom, bloom, flower",
    "previewURL": "https://cdn.pixabay.com/photo/2013/10/15/09/12/flower-195893_150.jpg"
    "previewWidth": 150,
    "previewHeight": 84,
    "webformatURL": "https://pixabay.com/get/35bbf209e13e39d2_640.jpg",
    "webformatWidth": 640,
    "webformatHeight": 360,
    "largeImageURL": "https://pixabay.com/get/ed6a99fd0a76647_1280.jpg",
    "fullHDURL": "https://pixabay.com/get/ed6a9369fd0a76647_1920.jpg",
    "imageURL": "https://pixabay.com/get/ed6a9364a9fd0a76647.jpg",
    "imageWidth": 4000,
    "imageHeight": 2250,
    "imageSize": 4731420,
    "views": 7671,
    "downloads": 6439,
    "favorites": 1,
    "likes": 5,
    "comments": 2,
    "user_id": 48777,
    "user": "Josch13",
    "userImageURL": "https://cdn.pixabay.com/user/2013/11/05/02-10-23-764_250x250.jpg",
},
{
    "id": 73424,
    ...
},
...
]
}

2 个答案:

答案 0 :(得分:1)

首先,您必须将JSON对象转换为数组并进行如下比较。

$results = json_decode($your_array);
$match_result = [];
foreach($results['hits'] as $result) {
   if (isset($result['largeImageURL']) {
      $match_result [] = $result['largeImageURL'];
   }
}
print_r($match_result);

答案 1 :(得分:0)

您必须将JSON响应解码为一个数组,并循环遍历hits数组,直到找到密钥并返回数据为止。

$returnArr = array();//to store values of largeImageURL
$json = "<json response>";//your json string here
$decoded_json = json_decode($json, true);//convert json to an array
//now we will loop through hits
foreach($decoded_json['hits'] as $hit){
    $returnArr[] = $hit['largeImageURL'];
}
print_r($returnArr);