使用此示例多維數組(包含顏色的調色板,其中包含顏色,其中又包含其各自的陰影),假設我想顯示在內爆列表中的顏色(逗號 - 分隔)以及(如果適用)各自的括號中的陰影,也以分解(以逗號分隔)列表。多維數組:implode外部和內部數組
我可以很容易地爆破內部數組(陰影),但不知道如何使用外部數組(顏色),因爲它包含必須貫穿每種顏色的陰影數組。
我已經看到有幾個解決方案imploding多維數組,但這些似乎是不需要運行通過每個可能的內部數組。也許還有另一種用逗號分隔條目的方法?
雖然我在這個問題上,有沒有一種方法用'和'替換內爆字符串的最後一個逗號?
在此先感謝。
$sql = "SELECT DISTINCT colour_id, colour_nm, colour_url
FROM palettecolours
INNER JOIN colour ON colourid = colour_id
WHERE paletteid = '$palette_id'";
while ($row = mysqli_fetch_array($result))
{
$colour = '<a href = "/colour/' . $row['colour_name'] . '">' . $row['colour_url'] . '</a>';
$colours[$row['colour_id']] = array('colour' => $colour, 'shades' => array());
}
$sql = "SELECT colourid, shade_name, shade_url
FROM palettecolours
INNER JOIN shade ON shadeid = shade_id
WHERE paletteid = '$palette_id'";
while ($row = mysqli_fetch_array($result))
{
$shade = '<a href = "/shade/' . $row['shade_name'] . '">' . $row['shade_url'] . '</a>';
$colours[$row['colourid']]['shades'][] = array('shade' => $shade);
}
<?php foreach ($colours as $colour): ?>
<?php echo $colour['colour']; ?>
<?php if(!empty($colour['shades'])) { ?>(<?php echo implode(", ", $colour['shades']); ?>)<?php } ?>
<?php endforeach; ?>
當前顯示: - 紅色(品紅色,勃艮第,深紅)藍綠色黃色(埃及棉,玉蘭)白(軟文)
期望的結果: - 紅色(品紅色,勃艮第,深紅),藍色,綠色,黃色(埃及棉,白玉蘭),白色(軟月亮)
對不起,真的很厚,但你能告訴我如何將這個應用到上面的例子,因爲我有一些問題得到它的工作。 $數據的相應部分是分別給外部和內部數組的函數嗎? –
在你的情況下,最好這樣做:http://pastebin.com/afiF9WHg –
謝謝。我這樣認爲,如果它是最後一次迭代,不回顯逗號(使用:http://stackoverflow.com/questions/1070244/how-to-determine-the-first-and-last-iteration-in-a-foreach -循環)。並且,如果是倒數第二次迭代,那麼我也可以將這個方法改爲'和'。 –