/** * Возвращает массивы папка => вложенные файлы * @param string $dirs Путь до папки с папками и файлами * @return array Многомерный массив */ function getFileSystem($dirs){ foreach(iter($dirs) as $dir){ foreach(iter("$dirs/$dir") as $file){ $fileSystem[$dir][] = $file; } } return $fileSystem; }
function iter($packs, $res = []) { global $target, $results, $minPkgs; $diff = $target - array_sum($res); if ($diff == 0) { $pkgs = count($res); if ($pkgs < $minPkgs) { $minPkgs = $pkgs; $results = [$res]; } elseif ($pkgs == $minPkgs) { $results[] = $res; } } else { for ($i = 0; $i < count($packs); $i++) { $num = $packs[$i]; if ($num <= $diff) { $newRes = $res; $newRes[] = $num; iter(array_slice($packs, $i + 1), $newRes); } } } }
if (isset($_POST["Test"])) { //Получить ИД ответа $idotveta = ""; $sth = $mysqli->prepare("SELECT ID FROM otvet WHERE otv = ?"); $sth->bind_Param("s", $_POST["qwe"]); $sth->execute(); if (!$sth) { die("Error select group"); } $sth->bind_result($idotveta); $sth->fetch(); $sth->close(); //записать в массив ответов $_SESSION["otvet"][$_SESSION["i"] - 1] = $idotveta; tableotvetov($mysqli); $list .= iter($list, $mysqli); $_SESSION["LIST"] = $list; } else { if (isset($_POST["endTest"])) { //Получить ИД ответа $idotveta = ""; $sth = $mysqli->prepare("SELECT ID FROM otvet WHERE otv = ?"); $sth->bind_Param("s", $_POST["qwe"]); $sth->execute(); if (!$sth) { die("Error select group"); } $sth->bind_result($idotveta); $sth->fetch(); $sth->close(); //записать в массив ответов
<?php function &iter(array &$array) { foreach ($array as $key => &$value) { (yield $key => $value); } } $array = [1, 2, 3]; $iter = iter($array); foreach ($iter as &$value) { $value *= -1; } var_dump($array); $array = [1, 2, 3]; foreach (iter($array) as &$value) { $value *= -1; } var_dump($array);
<?php function iter($ar) { foreach ($ar as $c) { echo htmlentities($c, 0, "UTF-8"), ": ", strlen($c), "\n"; } } $teststr = "€ hi there"; iter(preg_split('//u', $teststr, -1, PREG_SPLIT_NO_EMPTY)); preg_match_all('/./u', $teststr, $matches); iter($matches[0]);
--$fx; --$fy; $el = array(); for ($i = 0; $i != $n; ++$i) { $str = array_map('intval', str_split(readline(''), 1)); $el[$i] = $str; } $newpaths = array(); for ($i = 0; $i <= 9; ++$i) { $e = $i - $el[$px][$py]; $newpaths[$px][$py][$i] = array(max($e, 0), array(array($px, $py))); } $chp = array(array($px, $py)); $newchp = array(); while (count($chp)) { iter(); /* for ($i = 0; $i != $n; ++$i) { if (! isset($newpaths[$i])) { break; } print(implode(' ', array_map(function($x) { return $x[0]; }, $newpaths[$i]))."\n"); } print("\n"); */ } $cost = 0;