使用此示例多维数组(包含颜色的调色板,其中包含颜色,其中又包含其各自的阴影),假设我想显示在内爆列表中的颜色(逗号 - 分隔)以及(如果适用)各自的括号中的阴影,也以分解(以逗号分隔)列表。多维数组: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 -循环)。并且,如果是倒数第二次迭代,那么我也可以将这个方法改为'和'。 –