Пример #1
0
function adPattern($word, $rec, $list, $index)
{
    // create a list of regex matching $word with $rec number of extra character
    if ($rec == 0) {
        return array($word);
    }
    $output = array();
    for ($i = $index + 1; $i < strlen($word); $i++) {
        $mot2 = substr($word, 0, $i) . '.?' . substr($word, $i, strlen($word) - 1);
        if ($rec > 1) {
            //echo($mot2);
            $output[$i] = adPattern($mot2, $rec - 1, $list, $i + 1);
        } else {
            $list[] = $mot2;
        }
    }
    if ($rec > 1) {
        return flat($output);
    }
    return $list;
}
Пример #2
0
<?php

function flat(&$ary)
{
    // argument must be by reference or array will just be copied
    for ($i = 0; $i < count($ary); $i++) {
        while (is_array($ary[$i])) {
            array_splice($ary, $i, 1, $ary[$i]);
        }
    }
}
$lst = array(array(1), 2, array(array(3, 4), 5), array(array(array())), array(array(array(6))), 7, 8, array());
flat($lst);
var_dump($lst);