Поиск многомерного массива с именем ключа и возвращаемыми значениями в качестве результата - PullRequest
0 голосов
/ 05 апреля 2019

Я новичок в 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 ]

1 голос
/ 05 апреля 2019

Прежде всего, вы должны преобразовать свой объект 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);
0 голосов
/ 05 апреля 2019

Вы должны декодировать свой ответ 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...