【问题标题】:Different links from same array?来自同一个数组的不同链接?
【发布时间】:2013-04-03 03:20:05
【问题描述】:

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

$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 并进行排序。

【问题讨论】:

  • 一个用户给了你一些代码,另一个用户修改了它。你的角色是什么?管理?
  • 您有 2 个选项:最好的,编辑 $images 的来源,以包含表格。糟糕的替代方案 - 根据循环中的每个文件夹检查每个图像以确定正确的链接。
  • 我编辑了 $images 的源以包含第二个表,但问题是它过滤了所有图像,因此对它们进行排序。我已经更新了主帖。
  • 为什么源代码永远不知道它们来自哪个表?从这个例子看来,这似乎是抽象出来的,但您可以更改代码以某种方式传递该信息。

标签: php html mysql arrays


【解决方案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”来确定链接。

【讨论】:

  • 好的,我试试,谢谢!我还刚刚注意到我从未包含 SQL 查询。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-19
  • 1970-01-01
相关资源
最近更新 更多