I m 通过向每个“album”分配一个“父母-album_id”(除非在最高一级,在这种情况下,它没有父母一方。
首先,我从数据库中抽取了一系列的书目,并修改了每个书目中“id”(autoincrement id)。
其次,我要将各种小册子重新组织成多功能阵列,为每个书目保存儿童歌。 我已经取得了一些成功。 如果我只需要降低一层阵列,但如果我降级超过一层,就会失去阵列的全部结构,那么以下的法典就行了。 这是因为,当我直截了当的阵列——研究——我没有穿过整个阵列,只是我想要找的下一个层次。
我如何能够通过阵列重新搜索,但回归整个多维系列的小册子?
foreach ($albums as &$album){
if($album[ parent_album_id ]){ // Move album if it has a parent
$insert_album = $album;
unset($albums[$album[ id ]]); // Remove album from the array, since we are going to insert it into its parent
$results = array_search_key($album[ parent_album_id ],$albums,$insert_album, $albums);
if($results){
$albums = $results;
}
}
}
function array_search_key( $needle_key, $array , $insert_album) {
foreach($array AS $key=>&$value){
if($key == $needle_key) {
$array[$key][ children ][$insert_album[ id ]] = $insert_album;
return $array;
}
if(is_array($value) && is_array($value[ children ])){
if( ($result = array_search_key($needle_key, $value[ children ], $insert_album)) !== false)
return $result;
}
}
return false;
}