【发布时间】:2017-05-08 13:45:50
【问题描述】:
我有以下数组(从 JSON 解码):
Array
(
[playerInfo] => Array
(
[hint] =>
[infoText] => Array
(
[multiLineMode] =>
[subText1] => TLC
[subText2] => Christmas Pop
[title] => Sleigh Ride
)
[isPlayingInLemur] =>
[lyrics] =>
[mainArt] => Array
(
[altText] => Album Art
[artType] => UrlArtSource
[contentType] => image/jpeg
[url] => https://images-na.sS500_.jpg
)
[mediaId] => 958d47b9:16
[miniArt] => Array
(
[altText] => Album Art
[artType] => UrlArtSource
[contentType] => image/jpeg
[url] => https://images-n._SS48_.jpg
)
[miniInfoText] => Array
(
[multiLineMode] =>
[subText1] => TLC
[subText2] => Prime Music
[title] => Sleigh Ride
)
[playbackSource] =>
[playingInLemurId] =>
[progress] => Array
(
[allowScrubbing] => 1
[locationInfo] =>
[mediaLength] => 223
[mediaProgress] => 80
[showTiming] => 1
[visible] => 1
)
[provider] => Array
(
[artOverlay] => PRIME_SASH
[fallbackMainArt] => Array
(
[altText] =>
[artType] => IconArtSource
[iconId] => music-no-art
[iconStyles] =>
)
[providerLogo] => Array
(
[altText] => Amazon Music
[artType] => IconArtSource
[iconId] => amazon-music
[iconStyles] =>
)
[providerName] => Prime Music
)
[queueId] => 958d47
[state] => PAUSED
[template] =>
[transport] => Array
(
[layoutType] => MusicTransportLayout
[lyrics] => HIDDEN
[next] => ENABLED
[playPause] => ENABLED
[previous] => ENABLED
[repeat] => ENABLED
[shuffle] => ENABLED
)
[volume] => Array
(
[muted] =>
[volume] => 40
)
)
)
我有以下 foreach 循环,它打印 infoText 数组中的每个项目 (4)。
<?php
foreach ($player['playerInfo']['infoText'] as $music) {
echo $music;
}
?>
但我希望能够仅打印 infoText 数组中的 [title]、playerInfo 父数组中的 [state] 和 volume 数组中的 [volume]。有没有一种优雅的方式来做到这一点?另外,由于我使用的是 foreach,所以我只获得了该对的值,但我还需要密钥。这样我就可以打印我需要的特定项目。
【问题讨论】:
-
<?php echo 'STATE: '.$data['playerInfo']['state'].' <br /> Title: '.$data['playerInfo']['infoText']['title']; ?> -
"由于我使用的是foreach,所以我只得到了pair的值,但我还需要key。"
foreach ($array as $key => $value) -
@Jhecht foreach 应该是什么?感谢您的回复
-
@Greg 如果可以直接访问元素,为什么还需要 foreach 循环?
标签: php arrays json multidimensional-array foreach