这里有一位善意的用户给了我这段代码:
$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”文件夹中。我如何设置根据具有该代码的表来更改链接,因为代码不会告诉它来自哪个表?
最后两个foreach语句是单独的,没有排序。我不确定如何合并这样的foreach并进行排序。
答案 0 :(得分: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'的数组键来确定链接。