php 学习 1
php 中的数组其实是一个有序的映射(ordered map),
你可以将它用作一个数组,list(vector), hashtable, dictionary, collection,
stack, queue 或者其他的数据结构。
如果用数组作为数组的元素,可以构造出树。
array() 创建数组
<?php
$arr = array("foo" => "bar", 12 => true);
echo $arr["foo"];
echo $arr[12];
?>
key 可以是字符串或整数,如果未指定 key, 则该 value 的 key 会被指定为已有的
最大的整数 key + 1. 如:
<?php
// This array is the same as ...
array(5 => 43, 32, 56, "b" => 12);
// ...this array
array(5 => 43, 6 => 32, 7 => 56, "b" => 12);
?>
移除一个 key/value 对,用 unset 函数
<?php
$arr = array(5 => 1, 12 => 2);
$arr[] = 56; // This is the same as $arr[13] = 56;
// at this point of the script
$arr["x"] = 42; // This adds a new element to
// the array with key "x"
unset($arr[5]); // This removes the element from the array
unset($arr); // This deletes the whole array
?>
foreach 语法遍历数组:
<?php
$array = array(1, 2, 3, 4, 5);
print_r($array);
foreach ($array as $i => $value) {
unset($array[$i]);
}
print_r($array);
$array[] = 6;
print_r($array);
// Re-index:
$array = array_values($array);
$array[] = 7;
print_r($array);
?>
foreach 语句在 array 的一个 copy 上进行操作。如果需要修改其元素,要用引用的语法:
(php5)
<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
$value = $value * 2;
}
?>
foreach 语句两种语法:
foreach (array_expression as $value)
statement
foreach (array_expression as $key => $value)
statement
文件,目录操作例子:
<?php
// fill an array with all items from a directory
$handle = opendir('.');
while (false !== ($file = readdir($handle))) {
$files[] = $file;
}
closedir($handle);
print_r($files);
?>
数组的赋值操作总是值传递,要用引用传递则必须使用 & 语法:
<?php
$arr1 = array(2, 3);
$arr2 = $arr1;
$arr2[] = 4; // $arr2 is changed,
// $arr1 is still array(2, 3)
$arr3 = &$arr1;
$arr3[] = 4; // now $arr1 and $arr3 are the same
?>
日期的处理:
print date('Y-m-d');
输出:
2005-11-22