1 回答

TA貢獻2080條經驗 獲得超4個贊
該算法非常簡單。在移動第一個元素后,您可以簡單地使用 while 語句循環剩余的條目,然后使用 2 個其他循環按順序附加剩余的名稱:
$names = ["Jim", "Jane", "Bob", "Susan", "Ralph"];
$result = [];
while (count($names) > 2) {
$currentName = array_shift($names);
for ($i = 0; $i < count($names) - 1; $i++) {
for ($j = $i + 1; $j < count($names); $j++) {
$result[] = implode(', ', [$currentName, $names[$i], $names[$j]]);
}
}
}
var_dump($result);
結果將是:
array(10) {
[0]=>
string(14) "Jim, Jane, Bob"
[1]=>
string(16) "Jim, Jane, Susan"
[2]=>
string(16) "Jim, Jane, Ralph"
[3]=>
string(15) "Jim, Bob, Susan"
[4]=>
string(15) "Jim, Bob, Ralph"
[5]=>
string(17) "Jim, Susan, Ralph"
[6]=>
string(16) "Jane, Bob, Susan"
[7]=>
string(16) "Jane, Bob, Ralph"
[8]=>
string(18) "Jane, Susan, Ralph"
[9]=>
string(17) "Bob, Susan, Ralph"
}
- 1 回答
- 0 關注
- 126 瀏覽
添加回答
舉報