Php 按字母顺序排列的组数组结果(续)
我为这个没有创意的标题感到抱歉 我正在尝试按字母顺序对数组进行分组。对我的任务有很大帮助,但我仍然想把事情做得更进一步 以下是我当前的代码:Php 按字母顺序排列的组数组结果(续),php,foreach,group-by,Php,Foreach,Group By,我为这个没有创意的标题感到抱歉 我正在尝试按字母顺序对数组进行分组。对我的任务有很大帮助,但我仍然想把事情做得更进一步 以下是我当前的代码: $records = ['7th Trick', 'Jukebox', 'Dynamyte', '3rd Planet']; $lastChar = ''; sort($records, SORT_STRING | SORT_FLAG_CASE); foreach($records as $val) { $char = strtolower($v
$records = ['7th Trick', 'Jukebox', 'Dynamyte', '3rd Planet'];
$lastChar = '';
sort($records, SORT_STRING | SORT_FLAG_CASE);
foreach($records as $val) {
$char = strtolower($val[0]);
if ($char !== $lastChar) {
if ($lastChar !== '') echo "</ul>";
echo "<h2>".strtoupper($char)."</h2><ul>";
$lastChar = $char;
}
echo '<li>'.$val.'</li>';
}
echo "</ul>";
$records=['7th Trick','Jukebox','Dynamyte','3rd Planet'];
$lastChar='';
排序($records,sort_STRING | sort_FLAG_CASE);
foreach($记录为$val){
$char=strtolower($val[0]);
如果($char!=$lastChar){
如果($lastChar!='')回显“”;
回声“.strtoupper($char)。”“;
$lastChar=$char;
}
回音“- ”.$val.
”;
}
回声“
”;
我想让非字母项目组合在一起,而不是单独分开
示例: “第七招”和“第三行星”按非字母顺序分组,而不是分别显示在“7”和“3”类别下
知道怎么做吗?从阵列中移除字母,并在打印字母后显示它们
<?php
$records = ['7th Trick', 'Jukebox', 'Dynamyte', '3rd Planet'];
$lastChar = '';
sort($records, SORT_STRING | SORT_FLAG_CASE);
$alpha = array();
$non_alpha = array();
foreach($records as $val) {
if (ctype_alpha($val[0])) {
$alpha[] = $val;
} else {
$non_alpha[] = $val;
}
}
foreach($alpha as $val) {
$char = strtolower($val[0]);
if ($char !== $lastChar) {
if ($lastChar !== '') echo "</ul>";
echo "<h2>".strtoupper($char)."</h2><ul>";
$lastChar = $char;
}
echo '<li>'.$val.'</li>';
}
echo "</ul>";
if (sizeof($non_alpha) > 0) {
echo "<h2>Digits</h2><ul>";
foreach ($non_alpha as $val) {
echo '<li>'.$val.'</li>';
}
echo "</ul>";
}
您只需在现有代码中添加一行即可完成此任务
$char = strtolower($val[0]);
// Convert $char to one value if it isn't a letter
if (!ctype_alpha($char)) $char = 'Non-alphabetic';
if ($char !== $lastChar) {
剩下的部分也应该是一样的。用一些原始输入数据+代码+尝试的内容+卡住的地方+想要的输出+想要的内容来明确你的问题。语句和链接对任何人都没有帮助。可能重复相关的代码,并且是代码扩展的一个很好的候选项,以适合您的情况:谢谢您的回答,您的代码工作得很好。。。但另一个答案对我来说太性感了。。。太棒了!性感的一句话拯救了这一天!!XD但这不会将非字母项目分组,这似乎是您想要的,因为字母项目是分组的。@ScottCWilson我以为OP要求将所有非字母项目合并到一个组中。这应该可以做到,你是对的;我忽略了在他的代码中调用排序的事实。