PHP-来自2个数组的订单信息
好的,我有两个数组。1个数组具有应显示信息的顺序,而另一个数组具有该信息。但是我很难确定一种方式来显示信息的顺序,它应该显示在 例如,我这里有一个数组,我无法控制它(这意味着数组在我的代码运行之前就完成了,所以我必须从这个数组开始,我不能改变这个实际的数组。如果这个数组有帮助的话,我可以从这个数组构建一个数组?但不确定如何…?) 此处的数值指向要显示的实际信息PHP-来自2个数组的订单信息,php,arrays,Php,Arrays,好的,我有两个数组。1个数组具有应显示信息的顺序,而另一个数组具有该信息。但是我很难确定一种方式来显示信息的顺序,它应该显示在 例如,我这里有一个数组,我无法控制它(这意味着数组在我的代码运行之前就完成了,所以我必须从这个数组开始,我不能改变这个实际的数组。如果这个数组有帮助的话,我可以从这个数组构建一个数组?但不确定如何…?) 此处的数值指向要显示的实际信息 0=成员名称($attachments['member']['link']) 1=文件名($attachments['file']['
- 0=成员名称(
)$attachments['member']['link']
- 1=文件名(
)$attachments['file']['link']
- 2=文件大小(
)$attachments['file']['Filesize']
- 3=下载(
)$attachments['file']['Downloads']
- 4=文章链接(
)$attachments['topic']['Link']
- 5=附件时间(
)$attachments['topic']['Time']
- 6=要显示的图像(
)$attachments['file']['Image']['link']
while ($row = $smcFunc['db_fetch_assoc']($request))
{
$attachments[$row['id_attach']] = array(
'member' => array(
'id' => $row['id_member'],
'name' => $row['poster_name'],
'link' => empty($row['id_member']) ? $row['poster_name'] : '<a href="' . $scripturl . '?action=profile;u=' . $row['id_member'] . '">' . $row['poster_name'] . '</a>',
),
'file' => array(
'filename' => $filename,
'filesize' => round($row['filesize'] /1024, 2) . $txt['kilobyte'],
'downloads' => $row['downloads'],
'href' => $scripturl . '?action=dlattach;topic=' . $row['id_topic'] . '.0;attach=' . $row['id_attach'],
'link' => '<img src="' . $settings['images_url'] . '/icons/clip.gif" alt="" /> <a href="' . $scripturl . '?action=dlattach;topic=' . $row['id_topic'] . '.0;attach=' . $row['id_attach'] . '">' . $filename . '</a>',
'is_image' => !empty($row['width']) && !empty($row['height']) && !empty($modSettings['attachmentShowImages']),
'image' = array(
'id' => $id_thumb,
'width' => $row['width'],
'height' => $row['height'],
'img' => '<img src="' . $scripturl . '?action=dlattach;topic=' . $row['id_topic'] . '.0;attach=' . $row['id_attach'] . ';image" alt="' . $filename . '" />',
'thumb' => '<img src="' . $scripturl . '?action=dlattach;topic=' . $row['id_topic'] . '.0;attach=' . $id_thumb . ';image" alt="' . $filename . '" />',
'href' => $scripturl . '?action=dlattach;topic=' . $row['id_topic'] . '.0;attach=' . $id_thumb . ';image',
'link' => '<a href="' . $scripturl . '?action=dlattach;topic=' . $row['id_topic'] . '.0;attach=' . $row['id_attach'] . ';image"><img src="' . $scripturl . '?action=dlattach;topic=' . $row['id_topic'] . '.0;attach=' . $id_thumb . ';image" alt="' . $filename . '" /></a>',
),
),
'topic' => array(
'id' => $row['id_topic'],
'subject' => $row['subject'],
'href' => $scripturl . '?topic=' . $row['id_topic'] . '.msg' . $row['id_msg'] . '#msg' . $row['id_msg'],
'link' => '<a href="' . $scripturl . '?topic=' . $row['id_topic'] . '.msg' . $row['id_msg'] . '#msg' . $row['id_msg'] . '">' . $row['subject'] . '</a>',
'time' => timeformat($row['poster_time']),
),
)
}
但是我需要根据$attach_info数组以正确的顺序回显这些项目,并且只回显这些项目 可能有帮助最好尝试以下方法:
foreach($attach_info as $val){
switch($val){
case 0: echo $attachments['member']['link'];
break;
case 1: echo $attachments['file']['link'];
break;
case 2: echo $attachments['file']['filesize'];
break;
case 3: echo $attachments['file']['downloads'];
break;
case 4: echo $attachments['topic']['link'];
break;
case 5: echo $attachments['topic']['time'];
break;
case 6: echo $attachments['file']['image']['link'];
break;
}
}
好的,您基本上描述了使用=>Loop over
attach_info
参数并创建一个函数的算法,该函数将通过索引获取数组的正确成员。这很简单。你好,Jaroslav,编辑了我的答案,因为有多个附件,可以有多个附件。如果不尝试对附件进行排序,请使用array\u multisort
。如果只是以正确的顺序显示数据,则必须循环。将您的foreach循环与ayk建议的嵌套循环一起使用,但不要使用echo$attachments[…]
使用echo$item[…]
。将以正确的顺序显示每个附件的值。没有办法避免嵌套循环。谢谢,这是我能想到的唯一可行的方法,但它必须有一个附件循环,因为记住$attachments数组在另一个数组中,因为还有不止一个附件。Solo,有什么问题吗?添加更多行到这个数组?@Kamilos-什么?我只是稍微修改了我的原始问题,这样现在就更有意义了。很抱歉把这件事搞混了。
foreach($attachments as $item)
{
echo
$item['member']['link'] . $item['file']['link'] . $item['file']['filesize'] . $item['file']['downloads'] . $item['topic']['link'] . $item['topic']['time'] . $item['file']['image']['link'];
}
foreach($attach_info as $val){
switch($val){
case 0: echo $attachments['member']['link'];
break;
case 1: echo $attachments['file']['link'];
break;
case 2: echo $attachments['file']['filesize'];
break;
case 3: echo $attachments['file']['downloads'];
break;
case 4: echo $attachments['topic']['link'];
break;
case 5: echo $attachments['topic']['time'];
break;
case 6: echo $attachments['file']['image']['link'];
break;
}
}