我想用前两个字母列出/分组单词,但我无法理解它。我想我可以做一个substr()并在循环时检查,但我不确定这是不是这样做。
类似的东西:
if (substr($word, 0, 2) == 'aa') {
echo $word;
}
我想要实现的目标: 单词首先按其起始字母排序,例如A,B,C等在A页面上,您有按前两个字母排序的单词,例如aa,ab,ac等。
这方面的一个例子是http://www.urbandictionary.com/browse.php?word=aa。他们正是我所追求的。
帮助/想法赞赏!
答案 0 :(得分:1)
如果您有一堆单词,请将它们组合在一个数组中。
例如:
<?php
$myWords = array ("hello", "hell", "ape", "word", "appel");
$myGroupedArr = array();
foreach ($myWords as $oneWord){
$firstTwo = substr($oneWord,0,2);
$myGroupedArr[$firstTwo][] = $oneWord;
}
echo "<pre>";
print_r($myGroupedArr);
echo "</pre>";
?>
答案 1 :(得分:0)
我不仅会按第一个字母排序,而是按整个字母排序,或至少按前两个字母排序。
然后,您确实可以使用substr
来获取第一个单词的前两个字母。然后你可以进入循环,并用你之前得到的两个字母检查循环中单词的前两个字母。
如果他们不同,你知道你有一个新组。您可以回显组头并将新内容存储到字母中,以便在以下迭代中进行比较。
// Words in a sorted array.
$words = array( ...... );
asort($words);
$currentGroup = '';
foreach ($words as $word)
{
$newGroup = substr($word, 0, 2);
if ($newGroup !== $currentGroup)
{
// A new group is starting.
echo "=== $newGroup ===<br/>";
$currentGroup = $newGroup;
}
echo $word . '<br/>';
}