裏面我有這樣的foreach:PHP的foreach問題
<?php foreach ($manufacturers as $key => $manufacturer) {
if($manufacturer->virtuemart_manufacturercategories_id == 1){
$lang = 'heb'; //Hebrew
} else {
$lang = 'eng'; //English
}
//add to letter list
$letter = mb_substr($manufacturer->mf_name, 0, 1, 'UTF-8');
${'html_letters_'.$lang}[] = $letter;
/*
echo '<pre>';
print_r($manufacturer);
echo '</pre>';*/
$link = JROUTE::_('index.php?option=com_virtuemart&view=category&virtuemart_manufacturer_id=' . $manufacturer->virtuemart_manufacturer_id);
${'html_manufacturers_'.$lang} .= '<div class="manufacturer" data-lang="'.$lang.'" data-letter="'.$letter.'"><a href="'.$link.'">';
?>
<?php
if ($manufacturer->images && ($show == 'image' or $show == 'all')) {
${'html_manufacturers_'.$lang} .= $manufacturer->images[0]->displayMediaThumb('',false);
}
if ($show == 'text' or $show == 'all') {
${'html_manufacturers_'.$lang} .= '<div>'.$manufacturer->mf_name.'</div>';
}
${'html_manufacturers_'.$lang} .= '</a>
</div> <!-- /manufacturer -->';
if ($col == $manufacturers_per_row){
$col = 1;
} else {
$col++;
}
}
?>
我如何檢查,如果我有超過2個相同的字母和取消所有其他人,但保持一個。
字母的輸出是:
AABCHKIUKP
我想這將是:
ABCHKIUKP
我該怎麼辦呢?
編輯:我已更新所有的foreach代碼。問題是如果我有更多的名字相同的起始字母EG:香氣,空氣循環採取第一個字母A和foreach他2次,我想只顯示一個,如果有甚至10個相同的開始字母的名字。
謝謝。
我不能添加評論,所以我的帖子被轉換爲評論(感謝stackoverflow :))。解決方案是在這裏:http://stackoverflow.com/questions/6723389/remove-repeating-character – aslawin
我已經試過。它如何不爲mb(utf-8)字符工作。同樣在這裏它的內部foreach,所以$信函每次返回名稱的第一個字母 – user2635001