热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

细说php读书笔记,深入理解PHP读书笔记

第一章高级PHP技巧1.1多维数组排序1.1.1多维数组排序$aarray(array(key1940,key2blah),array(key123,key2this),a

第一章  高级PHP技巧

1.1 多维数组排序

1.1.1 多维数组排序

$a=array(

array('key1'=>940,'key2'=>'blah'),

array('key1'=>23,'key2'=>'this'),

array('key1'=>894,'key2'=>'that')

);

print_r($a);

function asc_number_sort($x,$y){

if($x['key1']>$y['key1']){

return true;

}elseif($x['key1']

return false;

}else{

return 0;

}

}

usort($a,'asc_number_sort');

$a=array(

array('key1'=>940,'key2'=>'blah'),

array('key1'=>23,'key2'=>'this'),

array('key1'=>894,'key2'=>'that')

);

function string_sort($x,$y){

return strcasecmp($x['key2'],$y['key2']);

}

usort($a,'string_sort');

$students=array(

256=>array('name'=>'John','grade'=>98.5),

2=> array('name'=>'Vance','grade'=>85.1),

9=> array('name'=>'Stephen','grade'=>94.0),

364=>array('name'=>'Steve','grade'=>85.1),

68=> array('name'=>'Rob','grade'=>74.6)

);

function name_sort($x,$y){

return strcasecmp($x['name'],$y['name']);

}

function grade_sort($x,$y){

return ($x['grade']

}

echo '

Array As Is

'.print_r($students,1).'';

uasort($students,'name_sort');

echo '

Array Sorted By Name

'.print_r($students,1).'';

uasort($students,'grade_sort');

echo '

Array Sorted By Grade

'.print_r($students,1).'';

1.1.2 数据库驱动的数组

$dbc=mysqli_connect('localhost','root','','php');

if(($_SERVER['REQUEST_METHOD']=='POST')&& !empty($_POST['task'])){

if(isset($_POST['parent_id'])&& filter_var($_POST['parent_id'],FILTER_VALIDATE_INT,array('min_rang'=>1))){

$parent_id=$_POST['parent_id'];

}else{

$parent_id=0;

}

$task=mysqli_real_escape_string($dbc,strip_tags($_POST['task']));

$q="insert into tasks(parent_id,task) values($parent_id,'$task')";

$r=mysqli_query($dbc,$q);

if(mysqli_affected_rows($dbc)==1){

echo '

The task has been added

';

}else{

echo '

The task chould not be added!

';

}

}

echo '

Add a Task

Task:

Parent Task:None';

$q='select task_id,parent_id ,task from tasks where date_completed="0000-00-00 00:00:00" order by date_added ASC';

$r=mysqli_query($dbc,$q);

$task=array();

while(list($task_id,$parent_id,$task)=mysqli_fetch_array($r,MYSQL_NUM)){

echo "$task\n";

$tasks[]=array('task_id'=>$task_id,'parent_id'=>$parent_id,'task'=>$task);

}

echo '

';

function parent_sort($x,$y){

return ($x['parent_id']>$y['parent_id']);

}

usort($tasks,'parent_sort');

echo '

Current To-Do List

  • ';

foreach($tasks as $task){

echo "

{$task['task']}\n";

}

echo '

';

1.2 高级函数定义

递归函数

静态变量

以引用方式接收值

匿名函数

1.2.1 递归函数

递归 recursion 就是函数自己调用自己的行为。

global $tasks;

echo '

  1. ';

foreach($parent as $task_id=>$todo){

echo "

".$todo;

if(isset($tasks[$task_id])){

make_list($tasks[$task_id]);

}

echo "

";

}

echo "

";

}

$dbc=mysqli_connect('localhost','root','','php');

$q='select task_id,parent_id,task from tasks where date_completed="0000-00-00 00:00:00" order by parent_id,date_added asc';

$r=mysqli_query($dbc,$q);

$tasks=array();

while(list($task_id,$parent_id,$task)=mysqli_fetch_array($r,MYSQLI_NUM)){

$tasks[$parent_id][$task_id]=$task;

}

echo '

'.print_r($tasks,1).'';

make_list($tasks[0]);



推荐阅读
  • PHP中元素的计量单位是什么? ... [详细]
  • 计算 n 叉树中各节点子树的叶节点数量分析 ... [详细]
  • 从零起步:使用IntelliJ IDEA搭建Spring Boot应用的详细指南
    从零起步:使用IntelliJ IDEA搭建Spring Boot应用的详细指南 ... [详细]
  • Spring Boot 实战(一):基础的CRUD操作详解
    在《Spring Boot 实战(一)》中,详细介绍了基础的CRUD操作,涵盖创建、读取、更新和删除等核心功能,适合初学者快速掌握Spring Boot框架的应用开发技巧。 ... [详细]
  • 作为140字符的开创者,Twitter看似简单却异常复杂。其简洁之处在于仅用140个字符就能实现信息的高效传播,甚至在多次全球性事件中超越传统媒体的速度。然而,为了支持2亿用户的高效使用,其背后的技术架构和系统设计则极为复杂,涉及高并发处理、数据存储和实时传输等多个技术挑战。 ... [详细]
  • 在Ubuntu系统中,由于预装了MySQL,因此无需额外安装。通过命令行登录MySQL时,可使用 `mysql -u root -p` 命令,并按提示输入密码。常见问题包括:1. 错误 1045 (28000):访问被拒绝,这通常是由于用户名或密码错误导致。为确保顺利连接,建议检查MySQL服务是否已启动,并确认用户名和密码的正确性。此外,还可以通过配置文件调整权限设置,以增强安全性。 ... [详细]
  • 本文详细解析了 MySQL 5.7.20 版本中二进制日志(binlog)崩溃恢复机制的工作流程。假设使用 InnoDB 存储引擎,并且启用了 `sync_binlog=1` 配置,文章深入探讨了在系统崩溃后如何通过 binlog 进行数据恢复,确保数据的一致性和完整性。 ... [详细]
  • Java 零基础入门:SQL Server 学习笔记(第21篇)
    Java 零基础入门:SQL Server 学习笔记(第21篇) ... [详细]
  • MySQL性能优化与调参指南【数据库管理】
    本文详细探讨了MySQL数据库的性能优化与参数调整技巧,旨在帮助数据库管理员和开发人员提升系统的运行效率。内容涵盖索引优化、查询优化、配置参数调整等方面,结合实际案例进行深入分析,提供实用的操作建议。此外,还介绍了常见的性能监控工具和方法,助力读者全面掌握MySQL性能优化的核心技能。 ... [详细]
  • 在Linux系统中,MySQL的用户权限管理是运维人员必须掌握的关键技能之一。本文详细介绍了MySQL用户和权限管理的相关概念,包括MySQL用户的概念及其与VSFTPD虚拟用户的相似性,以及密码管理的重要性。此外,还深入探讨了如何通过命令行工具和配置文件进行用户权限的设置和调整,确保系统的安全性和稳定性。 ... [详细]
  • 本文探讨了使用JavaScript实现多种经典排序算法的高效方法,包括冒泡排序、选择排序、插入排序、归并排序和快速排序。为了确保代码的结构清晰和可维护性,我们首先定义了一个 `ArrayList` 类,该类中包含了待排序的数组声明。通过这种方式,我们不仅能够更好地组织代码,还能提高算法的执行效率和可读性。此外,我们还对每种排序算法进行了详细的性能分析和优化建议,以帮助开发者在实际应用中选择最合适的排序方法。 ... [详细]
  • HBase在金融大数据迁移中的应用与挑战
    随着最后一台设备的下线,标志着超过10PB的HBase数据迁移项目顺利完成。目前,新的集群已在新机房稳定运行超过两个月,监控数据显示,新集群的查询响应时间显著降低,系统稳定性大幅提升。此外,数据消费的波动也变得更加平滑,整体性能得到了显著优化。 ... [详细]
  • 从用户转型为开发者:一场思维升级的旅程 | 专访 StarRocks Committer 周威
    从用户转变为开发者,不仅是一次角色的转换,更是一场深刻的思维升级之旅。本次专访中,StarRocks Committer 周威分享了他如何在这一过程中逐步提升技术能力与思维方式,为开源社区贡献自己的力量。 ... [详细]
  • 本文探讨了在Lumen框架中实现自定义表单验证功能的方法与挑战。Lumen的表单验证机制默认返回无状态的JSON格式API响应,这给初学者带来了一定的难度。通过深入研究Validate类,作者分享了如何有效配置和使用自定义验证规则,以提升表单数据的准确性和安全性。 ... [详细]
  • 如何构建基于Spring MVC框架的Java Web应用项目
    在构建基于Spring MVC框架的Java Web应用项目时,首先应创建一个新的动态Web项目。接着,需将必要的JAR包导入至WebContent/WEB-INF/lib目录下,确保包括Spring核心库及相关依赖。如遇缺失的JAR包,可向社区求助或通过Maven等工具自动下载。正确配置后,即可开始搭建应用结构与功能模块。 ... [详细]
author-avatar
JasonXie
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有