如何快速简洁地获取PHP数组所有连续子序列并implode输出
PHP数组连续子序列拼接实现方案
你原有代码的问题是只遍历了起始位置,没有独立控制截取的子序列长度,只能输出从每个起始下标到数组末尾的子序列,和预期输出的逻辑不符。
以下是简洁的实现方案,两层循环即可完成,逻辑清晰易维护:
$array = ['First', 'Second', 'Third', 'Fourth']; $totalLen = count($array); // 遍历所有可能的子序列长度,从1到数组总长度 for ($subLen = 1; $subLen <= $totalLen; $subLen++) { // 遍历当前长度下所有合法的起始下标 for ($start = 0; $start <= $totalLen - $subLen; $start++) { echo implode(' ', array_slice($array, $start, $subLen)) . PHP_EOL; } }
运行上述代码即可完全匹配你给出的预期输出。如果要调整输出顺序,比如先输出最长的子序列再输出最短的,只需要把外层循环的遍历方向反过来即可。
内容的提问来源于stack exchange,提问作者Googlebot
相关产品推荐
相关产品推荐

