0

这里的一位好心用户给了我这个代码:

$singles = valley_images();
$groups = valley_group_images();
$images = array_merge($singles, $groups);

$sortArray = array(); 

foreach($images as $image){ 
    foreach($image as $key=>$value){ 
        if(!isset($sortArray[$key])){ 
            $sortArray[$key] = array(); 
        } 
        $sortArray[$key][] = $value; 
    } 
} 

$orderby = "timestamp"; //change this to whatever key you want from the array 

array_multisort($sortArray[$orderby],SORT_DESC,$images); 

foreach($singles as $single) {
    echo '<img src="1/'.$image['album_id'].'/'.$image['code'].'.'.$image['ext'].'"/>';
}

foreach($groups as $group) {
    echo '<img src="groups/'.$image['group_id'].'/'.$image['code'].'.'.$image['ext'].'"/>';
}

现在的问题是,我将从 2 个不同的表、图像和 group_images 中获取图像。但是图像存储在“1”文件夹中,而 group_images 存储在“groups”文件夹中。我将如何设法根据带有该代码的表更改链接,因为代码没有告诉表它来自哪里?

最后 2 个 foreach 语句是单独的,没有排序。我不确定如何像这样合并 foreach 并进行排序。

4

1 回答 1

1

假设这是数据的来源:

$stmt = $conn->prepare("SELECT images.*, group_images.* ORDER BY `timestamp` DESC");

我会把它改成

$stmt = $conn->prepare("(SELECT images.*, 'single' as db from images) UNION  (SELECT group_images.*, 'group' as db from group_images) ORDER BY `timestamp` DESC");

一切顺利,您应该在输出中使用“db”的数组键来确定链接。

于 2013-04-03T03:55:05.933 回答