向数组中的项添加标题

时间:2014-05-13 14:39:22

标签: php html arrays loops foreach

我没有那么多PHP使用经验,我正在寻求以下方面的帮助:

我从具有列" countries"的SQL表中获取数据。包含国家名称和列#34; desc"包含评论。

在我的网页上,我根据匹配的国家/地区(根据特定条件)创建一个数组,以便按字母顺序对它们进行排序,并在每个数字前面添加图像(图像与国家/地区的名称相同)。 最后,我只是回显这个数组,以便在页面上显示国家和相应的图像。 到目前为止,所有这些都运行良好(使用下面的代码)。

我的代码:

$countries = '';
$valC = '';
$countC = 0;
foreach ($objDays->days as $days) {
    if(($days->dateMatch == "Yes") && ($days->locales != "")) {
        $inputC[] = explode(',', $days->locales);
        $countC++;
    }
}
if($countC == 0) {
    $countries = "&nbsp;<img src='images/icons/emotion_what.png' alt='' />&nbsp;&nbsp;No data on file for this date.";
} else {
    $arrC = array_map("trim", call_user_func_array("array_merge", $inputC));
    sort($arrC);
    array_walk($arrC, function (&$valC) { $valC = "<img src='images/icons/flags-32/flag_" . str_replace(" ", "_", $valC) . ".png' alt='' id='c" . $valC . "' style='width:32px' />&nbsp;" . $valC; } );
    $countries = implode(' &nbsp;&nbsp;', $arrC);
}
// ...
echo $countries;

更新 不再需要explode,因为现在每个单元格中只有一个国家/地区。

我无法做到以下几点: 我还要添加我的专栏&#34; desc&#34;的评论。作为我所回应的每个国家的(悬停)标题。 我可以通过$objDays->days->desc resp获取此信息。 $days->desc但无法找到添加此功能的方法。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:3)

您可以将子数组存储在$ inputC中,如下所示:

foreach ($objDays->days as $days) {
    if(($days->dateMatch == "Yes") && ($days->locales != "")) {
        $inputC[] = array(
            "text" => explode(',', $days->locales),
            "desc" => $days->desc
        );
        $countC++;
    }
}

修改你的array_walk

array_walk($arrC, function (&$valC) { $valC = "<img src='images/icons/flags-32/flag_" . str_replace(" ", "_", $valC['text']) . ".png' alt='".$valC['desc']."' id='c" . $valC['text'] . "' style='width:32px' />&nbsp;" . $valC['text']; } );

编辑:你的装饰&amp; array_merge肯定会被破坏,需要更新。