Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我的查询提供了以下php数组数据:_Php_Arrays_Sorting_Multidimensional Array - Fatal编程技术网

我的查询提供了以下php数组数据:

我的查询提供了以下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循环

 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()提供的参数无效