Hallo liebe PHP.de Community
Ich habe für ein Projekt von mir eine API/Library gesucht, mit welcher ich eine Musikdatenbank nach Musik Titel, Interpret, etc. abfragen kann.
Ich bin auf phpBrainz gestossen und dies scheint auch meinen Anforderungen zu entsprechen.
Wenn ich nun über die Funktionen einen Titel suche, erhalte ich einen Array mit Objekten und weiteren Arrays zurück.
Resultat:
Mit
komme ich zum Beispiel an den Artist-Name heran.
Wenn ich nun aber an die Releases ran will (oben im Resultat Fett-Gedruckt) muss ich einen Umweg über eine weitere Variable machen (zumindest ist es die einzige Möglichkeit die ich mittlerweile herausgefunden habe, da die Funktion getReleases() einen Array zurück gibt).
Meine Frage: Gibt es dazu auch einen direkteren Weg als über eine zweite Variable?
Zum Beispiel irgend etwas in diese Richtung? (nachfolgender Code funktioniert nicht)
Liebe Grüsse und danke für eure Mühe
Ich habe für ein Projekt von mir eine API/Library gesucht, mit welcher ich eine Musikdatenbank nach Musik Titel, Interpret, etc. abfragen kann.
Ich bin auf phpBrainz gestossen und dies scheint auch meinen Anforderungen zu entsprechen.
Wenn ich nun über die Funktionen einen Titel suche, erhalte ich einen Array mit Objekten und weiteren Arrays zurück.
PHP-Code:
require_once("../phpBrainz.class.php");
//Create new phpBrainz object
$phpBrainz = new phpBrainz();
$args = array(
"title"=>"Buddy Holly",
"artist"=>"Weezer"
);
$trackFilter = new phpBrainz_TrackFilter($args);
$trackResults = $phpBrainz->findTrack($trackFilter);
foreach($trackResults as $obj)
{
echo "<pre> ";
var_dump($obj);
echo "</pre>";
}
Code:
object(phpBrainz_Track)#8 (7) { ["id:private"]=> string(36) "e9175559-babe-4554-9451-c2f8187f2573" ["artist:private"]=> object(phpBrainz_Artist)#12 (9) { ["id:private"]=> string(36) "6fe07aa5-fec0-4eca-a456-f29bff451b04" ["name:private"]=> string(6) "Weezer" ["sortName:private"]=> string(0) "" ["beginDate:private"]=> string(0) "" ["endDate:private"]=> string(0) "" ["type:private"]=> NULL ["disambiguation:private"]=> NULL ["releasesCount:private"]=> NULL ["releasesOffset:private"]=> NULL } ["duration:private"]=> int(160293) ["puids:private"]=> array(0) { } ["releases:private"]=> array(1) { [0]=> object(phpBrainz_Release)#14 (9) { ["artist:private"]=> object(phpBrainz_Artist)#19 (9) { ["id:private"]=> string(0) "" ["name:private"]=> string(0) "" ["sortName:private"]=> string(0) "" ["beginDate:private"]=> string(0) "" ["endDate:private"]=> string(0) "" ["type:private"]=> NULL ["disambiguation:private"]=> NULL ["releasesCount:private"]=> NULL ["releasesOffset:private"]=> NULL } ["title:private"]=> string(4) "Now!" ["tracksCount:private"]=> int(17) ["id:private"]=> string(36) "645013e4-c068-4412-b318-964c55a080fb" ["discCount:private"]=> string(0) "" ["asin:private"]=> NULL ["tracks:private"]=> array(0) { } ["score:private"]=> int(0) ["tracksOffset:private"]=> int(10) } } ["title:private"]=> string(11) "Buddy Holly" ["score:private"]=> string(3) "100" }
PHP-Code:
$obj->getArtist()->getName()
Wenn ich nun aber an die Releases ran will (oben im Resultat Fett-Gedruckt) muss ich einen Umweg über eine weitere Variable machen (zumindest ist es die einzige Möglichkeit die ich mittlerweile herausgefunden habe, da die Funktion getReleases() einen Array zurück gibt).
PHP-Code:
$arr = $obj->getReleases();
echo $arr[0]->getTitle();
Zum Beispiel irgend etwas in diese Richtung? (nachfolgender Code funktioniert nicht)
PHP-Code:
$obj->getReleases()[0]->getTracksCount();
Liebe Grüsse und danke für eure Mühe
Kommentar