例如,这是我的文字:
$str = 'buy new microsoft windows';
Run Code Online (Sandbox Code Playgroud)
我用文本爆炸文本和列表:
Array
(
[0] => buy
[1] => new
[2] => microsoft
[3] => windows
)
Run Code Online (Sandbox Code Playgroud)
我想生成数组中的单词,如下所示:
buy new
buy new windows
buy microsoft
buy microsoft windows
buy windows
new microsoft
new microsoft windows
new windows
microsoft windows
Run Code Online (Sandbox Code Playgroud)
我尝试过foreach和rand,但是我无法生成像展示的那样.有没有机会像我的请求一样生成?
Suj*_*wal 14
你可以看看这个PEAR PACKAGE 示例用法:
<?php
require_once 'Math/Combinatorics.php';
$words = array('buy', 'new', 'microsoft');
$combinatorics = new Math_Combinatorics;
foreach($combinatorics->permutations($words, 2) as $p) {
echo join(' ', $p), "\n";
}
Run Code Online (Sandbox Code Playgroud)
输出将是:
buy new
new buy
buy microsoft
microsoft buy
new microsoft
microsoft new
Run Code Online (Sandbox Code Playgroud)
shuffle($array);
echo join(' ', array_slice($array, 0, mt_rand(1, count($array))));
Run Code Online (Sandbox Code Playgroud)
这给你一个随机的"句子".根据需要重复.
function powerSet($in,$minLength = 1) {
$count = count($in);
$members = pow(2,$count);
$return = array();
for ($i = 0; $i < $members; $i++) {
$b = sprintf("%0".$count."b",$i);
$out = array();
for ($j = 0; $j < $count; $j++) {
if ($b{$j} == '1') $out[] = $in[$j];
}
$out_val = implode(" ", $out);
if (count($out) >= $minLength) {
$return[] = $out_val;
}
}
return $return;
}
print_r(powerSet($str_arr));
Run Code Online (Sandbox Code Playgroud)
结果将是,
Array
(
[0] => windows
[1] => microsoft
[2] => microsoft windows
[3] => new
[4] => new windows
[5] => new microsoft
[6] => new microsoft windows
[7] => buy
[8] => buy windows
[9] => buy microsoft
[10] => buy microsoft windows
[11] => buy new
[12] => buy new windows
[13] => buy new microsoft
[14] => buy new microsoft windows
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3853 次 |
| 最近记录: |