我需要有关阵列排序的绝对noob问题的帮助。我使用的是我在这里找到的功能: Group array results in Alphabetic order PHP 按字母顺序排序数组值。
$records = ['Aaaaa', 'Aaaa2', 'bbb', 'bbb2', 'Dddd'];
$lastChar = '';
sort($records, SORT_STRING | SORT_FLAG_CASE);
foreach($records as $val) {
$char = $val[0]; //first char
if ($char !== $lastChar) {
if ($lastChar !== '')
echo '<br>';
echo strtoupper($char).'<br>'; //print A / B / C etc
$lastChar = $char;
}
echo $val.'<br>';
}
?>
[编辑]我想要做的是将每个字母组的数组值导出到文件中,甚至没有回应,这将是:
foreach(){
$group = ??; //group values alphabetically into a variable
export($group); //input the variable into my exporting function.
}
所以最终结果是我会有单独的文件(即:a.txt,b.txt - z.txt)。我认为这可以通过上述功能完成,我只是不知道将导出功能放在哪里。
希望我不要太困惑。
答案 0 :(得分:1)
最简单的解决方案就是调用已经回显的函数。
例如:
def method(queue)
[].tap { |array| array << queue.pop until queue.empty? }
end
更好的是,如果你把它写成一个可重用的函数,你可以接受一个回调作为参数。例如:
echo '<br>'; // you can remove this line - its a marker for where to put it.
functionToCall();
并称之为:
function mySortFunction($records, callable $callback) {
// ... do some sorting
$callback(); // calls the function a.k.a. callback.
// ... do some more sorting
}
或者,如果您想将此功能转换为生成器,则可以mySortFunction(['somedata'], 'myFunctionName');
// OR
mySortFunction(['somedata'], function() {
// write your callback function here if its short.
});
结果。从广义上讲,产量将取代回声
例如:
yield
然后你就可以使用它:
function mySortFunction($records) {
// do some sorting
yield $someValue;
// continue to do more sorting.
}