在本教程之前的章节中,我们已经知道数组是一种数/值对的简单列表。
不过,有时您希望用一个以上的键存储值。
可以用多维数组进行存储。
PHP - 多维数组
多维数组指的是包含一个或多个数组的数组。
PHP 能理解两、三、四或五级甚至更多级的多维数组。不过,超过三级深的数组对于大多数人难于管理。
注释:数组的维度指示您需要选择元素的索引数。
- 对于二维数组,您需要两个索引来选取元素
- 对于三维数组,您需要三个索引来选取元素
PHP - 两维数组
两维数组是数组的数组(三维数组是数组的数组的数组)。
首先,让我们看看下面的表格:
品牌 | 库存 | 销量 |
---|---|---|
Volvo | 33 | 20 |
BMW | 17 | 15 |
Saab | 5 | 2 |
Land Rover | 15 | 11 |
我们能够在两维数组中存储上表中的数据,就像这样:
<!DOCTYPE html>
<html>
<body>
<?php
$cars = array
(
array("Volvo",33,20),
array("BMW",17,15),
array("Saab",5,2),
array("Land Rover",15,11)
);
echo $cars[0][0].": 库存:".$cars[0][1].", 已售:".$cars[0][2].".<br>";
echo $cars[1][0].": 库存:".$cars[1][1].", 已售:".$cars[1][2].".<br>";
echo $cars[2][0].": 库存:".$cars[2][1].", 已售:".$cars[2][2].".<br>";
echo $cars[3][0].": 库存:".$cars[3][1].", 已售:".$cars[3][2].".<br>";
?>
</body>
</html>
输出Volvo: 库存:33, 已售:20.BMW: 库存:17, 已售:15.Saab: 库存:5, 已售:2.Land Rover: 库存:15, 已售:11.
<!DOCTYPE html>
<html>
<body>
<?php
$cars = array
(
array("Volvo",33,20),
array("BMW",17,15),
array("Saab",5,2),
array("Land Rover",15,11)
);
for ($row = 0; $row < 4; $row++) {
echo "<p><b>行数 $row</b></p>";
echo "<ul>";
for ($col = 0; $col < 3; $col++) {
echo "<li>".$cars[$row][$col]."</li>";
}
echo "</ul>";
}
?>
</body>
</html>
PHP 日期和时间
PHP date() 函数用于对日期或时间进行格式化。
PHP Date() 函数
PHP Date() 函数把时间戳格式化为更易读的日期和时间。
语法
date(format,timestamp)
参数 | 描述 |
---|---|
format | 必需。规定时间戳的格式。 |
timestamp | 可选。规定时间戳。默认是当前时间和日期。 |
获得简单的日期
date() 函数的格式参数是必需的,它们规定如何格式化日期或时间。
下面列出了一些常用于日期的字符:
- d - 表示月里的某天(01-31)
- m - 表示月(01-12)
- Y - 表示年(四位数)
- 1 - 表示周里的某天
其他字符,比如 "/", "." 或 "-" 也可被插入字符中,以增加其他格式。
下面的例子用三种不同方法格式今天的日期:
实例
<?php echo "今天是 " . date("Y/m/d") . "<br>"; echo "今天是 " . date("Y.m.d") . "<br>"; echo "今天是 " . date("Y-m-d") . "<br>"; echo "今天是 " . date("l"); ?>输出 今天是 2016/05/05今天是 2016.05.05今天是 2016-05-05今天是 Thursday
PHP 提示 - 自动版权年份
使用 date() 函数在您的网站上自动更新版本年份:
实例
© 2010-<?php echo date("Y")?>输出版权所有 2008-2016
<!DOCTYPE html>
<html>
<body>
<?php
echo "当前时间是 " . date("h:i:sa");
?>
</body>
</html>
当前时间是 05:00:46pm
注释:请注意 PHP date() 函数会返回服务器的当前日期/时间!
获得时区
如果从代码返回的不是正确的时间,有可能是因为您的服务器位于其他国家或者被设置为不同时区。
因此,如果您需要基于具体位置的准确时间,您可以设置要用的时区。
下面的例子把时区设置为 "Asia/Shanghai",然后以指定格式输出当前时间:
实例
<?php date_default_timezone_set("Asia/Shanghai"); echo "当前时间是 " . date("h:i:sa"); ?> 输出的结果是当前时间是 05:09:04pm
通过 PHP mktime() 创建日期
date() 函数中可选的时间戳参数规定时间戳。如果您未规定时间戳,将使用当前日期和时间(正如上例中那样)。
mktime() 函数返回日期的 Unix 时间戳。Unix 时间戳包含 Unix 纪元(1970 年 1 月 1 日 00:00:00 GMT)与指定时间之间的秒数。
语法
mktime(hour,minute,second,month,day,year)
下面的例子使用 mktime() 函数中的一系列参数来创建日期和时间:
实例
<?php $d=mktime(9, 12, 31, 6, 10, 2015); echo "创建日期是 " . date("Y-m-d h:i:sa", $d); ?> 创建日期是 2015-06-10 09:12:31am
通过 PHP strtotime() 用字符串来创建日期
PHP strtotime() 函数用于把人类可读的字符串转换为 Unix 时间。
返回的 字符串的时间
语法
strtotime(time,now)
下面的例子通过 strtotime() 函数创建日期和时间:
实例
<?php $d=strtotime("10:38pm April 15 2015"); echo "创建日期是 " . date("Y-m-d h:i:sa", $d); ?>
创建日期 2015-04-15 10:38:00pm 把人类的字符串转换成时间运行结果2016-05-06 12:00:00am2016-05-07 12:00:00am2016-08-05 05:34:30pm
更多日期实例
下例输出下周六的日期:
实例
<?php $startdate = strtotime("Saturday"); $enddate = strtotime("+6 weeks",$startdate); while ($startdate < $enddate) { echo date("M d", $startdate),"<br>"; $startdate = strtotime("+1 week", $startdate); } ?>
下例输出七月四日之前的天数:
实例
<?php $d1=strtotime("December 31"); $d2=ceil(($d1-time())/60/60/24); echo "距离十二月三十一日还有:" . $d2 ." 天。"; ?> 下例输出距离十二月三十一日还有:240 天。