我正在尝试在PHP中进行简单的文字云练习,但几乎没有什么扭曲。我已完成其他所有工作,但我无法弄清楚如何组合单词的循环。
以下示例将使我更容易理解我正在尝试做的事情:
我有这样的数组:
$ arr = array('linebreak','indent','code','question','prefer','we'','programming')
现在我正在尝试执行一个函数,它开始通过该数组并给我这样的数组:
阵列( [0] => '越线' [1] => 'linebreak indent' [2] => 'linebreak indent code' )
阵列( [0] => “缩进” [1] => '缩进代码' [2] => '缩进代码问题' )
所以基本上它逐字逐句地通过原始单词数组,并使这些小数组具有1到5个下一个单词组合。
答案 0 :(得分:0)
$arr = array('linebreak','indent','code','question','prefer','we','programming');
$val = '';
foreach($arr as $key=>$value)
{
$val .= ' '.$value;
$newArr[] = $val;
}
print_r($newArr);
答案 1 :(得分:0)
$a = array('linebreak','indent','code','question','prefer','we','programming');
for($i = 0; $i < count($a); $i++) {
$p = array();
for($k = $i; $k < count($a); $k++) {
$p[] = $a[$k];
$r[] = implode(' ', $p);
}
}
print_r($r);
答案 2 :(得分:0)
递归可能是要走的路。我没有详尽地检查下面的语法。
function descend($arr, $offset=0) {
global $holder;
$tmp=array_slice($arr,$offset,5); //limits the result set for each starter word to 5 or fewer children
foreach($tmp as $word) {
$val .= ' '.$word;
$holder[$offset][]=$val;
}
$offset++;
if($offset<count($arr)) descend($arr,$offset);
}
$arr = array('linebreak','indent','code','question','prefer','we','programming');
$holder = descend($arr);