PHP recursion, static variables, anonymous function use

巴扎黑
Release: 2023-03-03 12:50:02
Original
1494 people have browsed it

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <title>Current To-Do List</title>
</head>
<body>
<?php
    function make_list($parent) {
        global $tasks;
        echo &#39;<ol>&#39;;
        foreach($parent as $task_id => $todo) {
            echo "<li>$todo";
            if (isset($tasks[$task_id])) { // 如果当前id有子任务则递归创建菜单
                make_list($tasks[$task_id]);
            }
            echo "</li>";
        }
        echo &#39;</ol>&#39;;
    }
    $db = mysqli_connect(&#39;192.168.31.172&#39; ,&#39;root&#39;, &#39;root&#39;, &#39;phpadvanced&#39;);
    mysqli_query($db, "set names utf8");
    $q = &#39;SELECT task_id, parent_id, task FROM tasks WHERE date_completed="0000-00-00 00:00:00" 
    ORDER BY parent_id, date_added ASC&#39;;
    $r = mysqli_query($db, $q);
    $tasks = array();
while (list($task_id, $parent_id, $task) = mysqli_fetch_array($r, MYSQLI_NUM)) {
    $tasks[$parent_id][$task_id] = $task;
}
//echo &#39;<pre class="brush:php;toolbar:false">&#39;.print_r($tasks,1).&#39;
'; make_list($tasks[0]); //把包含顶级任务的数组发送给它, 最顶级的parent_id是0 ?>
Copy after login

Static variable statistics code

<?php
// create the array.
// Array structs
// StudentId = > ["name" => "Name", "grade" => xx.x];
$students = [
    256 => [&#39;name&#39; => &#39;Jon&#39;, &#39;grade&#39; => &#39;98.5&#39;],
    2 => [&#39;name&#39; => &#39;Vance&#39;, &#39;grade&#39; => &#39;85.1&#39;],
    9 => [&#39;name&#39; => &#39;Stephen&#39;, &#39;grade&#39; => &#39;94.0&#39;],
    364 => [&#39;name&#39; => &#39;Steve&#39;, &#39;grade&#39; => &#39;85.1&#39;],
    68 => [&#39;name&#39; => &#39;Rob&#39;, &#39;grade&#39; => &#39;74.6&#39;],
];
function name_sort($x, $y) {
    static $count = 1;
    echo "<p>Iteration $count: {$x[&#39;name&#39;]} vs. {$y[&#39;name&#39;]} </p>\n";
    $count ++;
    return strcasecmp($x[&#39;name&#39;], $y[&#39;name&#39;]);
}
function grade_sort($x, $y) {
    static $count = 1;
    echo "<p>Iteration $count: {$x[&#39;grade&#39;]} vs. {$y[&#39;grade&#39;]}</p>\n";
    $count++;
    return $x[&#39;grade&#39;] < $y[&#39;grade&#39;];
}
echo print_r($students, 1);
uasort($students, &#39;name_sort&#39;); //保持键并使用自定义排序
echo print_r($students, 1);
uasort($students, &#39;grade_sort&#39;);
echo print_r($students, 1);
?>
Copy after login

Anonymous function - closure code

<?php
// create the array.
// Array structs
// StudentId = > ["name" => "Name", "grade" => xx.x];
$students = [
    256 => [&#39;name&#39; => &#39;Jon&#39;, &#39;grade&#39; => &#39;98.5&#39;],
    2 => [&#39;name&#39; => &#39;Vance&#39;, &#39;grade&#39; => &#39;85.1&#39;],
    9 => [&#39;name&#39; => &#39;Stephen&#39;, &#39;grade&#39; => &#39;94.0&#39;],
    364 => [&#39;name&#39; => &#39;Steve&#39;, &#39;grade&#39; => &#39;85.1&#39;],
    68 => [&#39;name&#39; => &#39;Rob&#39;, &#39;grade&#39; => &#39;74.6&#39;],
];
echo print_r($students, 1);
uasort($students, function($x, $y){
    return strcasecmp($x[&#39;name&#39;], $y[&#39;name&#39;]);
}); //保持键并使用自定义排序
echo print_r($students, 1);
uasort($students, function($x, $y){
    return $x[&#39;grade&#39;] < $y[&#39;grade&#39;];
});
echo print_r($students, 1);
?>
Copy after login

Passing parameters by reference, used when the data is a big data, there is no need to copy a copy of the data code

<?php
function increment(&$i) {
    $i++;
}
$num = 2;
increment($num);
echo $num;
?>
Copy after login

The above is PHP recursion , Static variables, content used by anonymous functions, for more related content, please pay attention to the PHP Chinese website (www.php.cn)!


source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!