我的查询提供了以下php数组数据:
下面是获取数组中数据的foreach循环我的查询提供了以下php数组数据:,php,arrays,sorting,multidimensional-array,Php,Arrays,Sorting,Multidimensional Array,下面是获取数组中数据的foreach循环 foreach ($data['songsPlayList'] as $key => $value){ $data['playlistSongs'] = $this->_song->getSongsInPlaylist($value); //var_dump($data['playlistSongs']); } 如果我查
foreach ($data['songsPlayList'] as $key => $value){
$data['playlistSongs'] = $this->_song->getSongsInPlaylist($value);
//var_dump($data['playlistSongs']);
}
如果我查看源代码,我将看到以下内容:
array(1) {
[0]=>
array(8) {
["id"]=>
string(3) "121"
[0]=>
string(3) "121"
["artist"]=>
string(12) "2face Idibia"
[1]=>
string(12) "2face Idibia"
["song_title"]=>
string(13) "African Queen"
[2]=>
string(13) "African Queen"
["filename"]=>
string(30) "2face Idibia-African Queen.mp3"
[3]=>
string(30) "2face Idibia-African Queen.mp3"
}
}
array(1) {
[0]=>
array(8) {
["id"]=>
string(3) "493"
[0]=>
string(3) "493"
["artist"]=>
string(10) "Lucky Dube"
[1]=>
string(10) "Lucky Dube"
["song_title"]=>
string(11) "Remember Me"
[2]=>
string(11) "Remember Me"
["filename"]=>
string(26) "Lucky Dube-Remember Me.mp3"
[3]=>
string(26) "Lucky Dube-Remember Me.mp3"
}
}
这样,我只能打印一个数组的结果。所以我要做的是将其转换为如下数组:
array(437) {
[0]=>
array(12) {
["id"]=>
string(3) "121"
[0]=>
string(3) "121"
["artist"]=>
string(12) "2face Idibia"
[1]=>
string(12) "2face Idibia"
["song_title"]=>
string(13) "African Queen"
[2]=>
string(13) "African Queen"
["filename"]=>
string(30) "2face Idibia-African Queen.mp3"
[3]=>
string(30) "2face Idibia-African Queen.mp3"
}
[1]=>
array(12) {
["id"]=>
string(3) "493"
[0]=>
string(3) "493"
["artist"]=>
string(10) "Lucky Dube"
[1]=>
string(10) "Lucky Dube"
["song_title"]=>
string(11) "Remember Me"
[2]=>
string(11) "Remember Me"
["filename"]=>
string(26) "Lucky Dube-Remember Me.mp3"
[3]=>
string(26) "Lucky Dube-Remember Me.mp3"
}
}
因此,我可以执行一个php foreach循环来获取所有结果数据。有什么建议吗
$data['playlistSongs'] = [];
foreach ($data['songsPlayList'] as $key => $value){
$data['playlistSongs'][] = $this->_song->getSongsInPlaylist($value);
}
var_dump($data['playlistSongs']);
其他解决方案:
$data['playlistSongs'] = array_map(function($song) use($this) {
return $this->_song->getSongsInPlaylist($song);
}, $data['songsPlayList']);
其他解决方案:
$data['playlistSongs'] = array_map(function($song) use($this) {
return $this->_song->getSongsInPlaylist($song);
}, $data['songsPlayList']);
var_dump($data)代码>而不是var_dump($data['playlistongs'])编码>并将其放置在循环下,而不是循环内。aa和:将$data['playlishongs']
替换为$data['playlishongs'][/code>。这只会给出一个结果,但在foreach循环中,我有多个数据数组结果另一个解决方案:使用数组映射。这可能看起来像这样:$data=array\u map(函数($song)use($this){return$this->\u song->getSongsInPlaylist($song);},$data['songsPlayList'])你弄错了。我将把它作为答案发布var_dump($data)代码>而不是var_dump($data['playlistongs'])编码>并将其放置在循环下,而不是循环内。aa和:将$data['playlishongs']
替换为$data['playlishongs'][/code>。这只会给出一个结果,但在foreach循环中,我有多个数据数组结果另一个解决方案:使用数组映射。这可能看起来像这样:$data=array\u map(函数($song)use($this){return$this->\u song->getSongsInPlaylist($song);},$data['songsPlayList'])你弄错了。我将把它作为答案发布。我正在使用它将我的结果显示到网页
,效果很好。但在2015年9月5日下午16:44报告此错误-第24行中为foreach()提供的参数无效我正在使用此参数将结果显示到网页上。它工作正常。但在2015年9月5日下午16:44报告此错误-第24行中为foreach()提供的参数无效