![](/img/trans.png)
[英]PHP: How do I search an array for all entries of a specific key and return value?
[英]PHP Search for all entries in an array by value
因此,大約一個小時以來,我一直在為此而苦苦掙扎...我正在使用MusicBrainz api,因此,我現在試圖檢索藝術家ColdPlay的所有發行版(因為他在不同的國家/地區發行了幾個發行版) 。
我想做的是:
•在MusicBrainz響應數組中搜索重復的歌曲標題。
•對於每個重復項,請找到發布日期的國家/地區
因此,響應如下所示:
{
"title": "Parachutes",
"releaseDates": {
"UK": "2010-10-10",
"USA": "2010-10-12",
"AU": "2010-10-20",
"XW": "2010-11-11",
}
}
而不是這樣: https : //hastebin.com/fejazububi.php
我嘗試使用array_filter,foreach等。 你們當中有人建議嗎? 謝謝!
解決了:
生成的響應: https : //hastebin.com/ubiqasugav.php代碼:
$Data = [];
$ReleasesData = $ArtistData->releases['releases'];
foreach ($ReleasesData as $rel) {
if(!isset($Data[$rel['title']]['releaseDates'][$rel['country']])) {
$Data[$rel['title']]['releaseDates'][$rel['country']] = [
'date' => $rel['date'],
'status' => $rel['status']
];
}
}
return print_r($Data);
通過循環,簡單的代碼是:
$titles = array_unique(array_column($myarray, 'title'));
$result = array();
foreach ($titles as $title) {
$releaseDates = array();
foreach ($myarray as $event) {
if ($event['title'] == $title) {
$releaseDates[$event['country']] = $event['date'];
}
}
$data['title'] = $title;
$data['releaseDates'] = $releaseDates;
$result[] = $data;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.