好吧,我有2個數組。 1數組具有應該顯示的信息的ORDER,而另一個數組具有該信息。但我無法嘗試確定一種方式來顯示信息的順序,它應該顯示在...PHP - 來自2個陣列的訂單信息
例如,我有這個數組在這裏,我有沒有控制OVER(意思是數組在我的代碼運行之前就已經完成了,所以我必須從這個數組開始,我不能修改這個實際的數組,如果它可以幫助任何數組,我可以從這個數組構建一個數組? )
$attach_info(0,1,5,4);
的數值在這裏指出要顯示的實際信息...
- 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']),
),
)
}
而這僅僅是一個例如,真正的原因是這個數組在這個函數中被建立,用於每個附件,這個附件進入另一個數組。當然還有更多信息。這裏比我需要,但我會稍後縮小它。
因此,目前我正在對$ attachments數組進行一次foreach以抓取所有附件,這也爲我提供了附件的所有信息。沒有任何問題。
我遇到的問題是如何從$ attach_info數組中獲取$ attachments數組中的信息。我需要的輸出是什麼attach_info陣列的數量,明智的,它是在訂單
例如,如果$attach_info
數組是這樣的:
$attach_info(0,1,5,4);
比它應該輸出會員姓名首先是文件名,而不是附件時間,最後是該帖子的鏈接。
所以這個數組的順序很重要。並應該從$附件數組中獲取這些信息。
有人可以幫助我在foreach循環中設置它,以便信息以正確的順序回顯。 attach_info數組可以改變課程。我正在尋找一個快速的方法來做到這一點。如果您知道我的意思,我寧願不必確定信息的順序以及每次在$ attachments數組中的每個循環顯示哪些信息。你們
感謝搖滾:)
編輯
上面列出的$附件陣僅1實際陣列的輸出。它實際上是輸出所有附件,因此我需要它能夠通過所有附件進行循環,並且仍然只輸出正確的順序和正確的信息!對不起,如果我沒有解釋這一點。
$ attachments數組在1個foreach中是1個循環...所以它只是1個foreach的輸出。我需要他們。
所以,我現在能做的就是這個...
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'];
}
,但我需要根據$ attach_info陣列呼應以正確的順序的項目,只能隨聲附和的項目!
嗯,你已經基本描述的算法使用=>遍歷'attach_info'參數,並創建一個函數,將得到按索引排列的數組的正確成員。這很簡單。 – 2011-04-01 06:51:54
你好雅羅斯拉夫,編輯我的答案,因爲有超過1個附件,可以有很多附件。 – SoLoGHoST 2011-04-01 08:03:15
如果您不想使用'array_multisort'排序附件。如果它只是以正確的順序顯示數據,則必須循環。使用你的foreach循環,用** ayk **建議的嵌套循環,而不是'echo $ attachments [...]'使用'echo $ item [...]'。這將以正確的順序顯示每個附件的值。沒有辦法避免嵌套循環。 – 2011-04-01 13:31:13