1、“+”运算符
规则:
当两个数组的键名是数字键名或者字符串键名
$c = $a + $b
在$a后追加($b在$a中不存在的键名)键名和值
注意:
1、不覆盖,只是追加不存在的键名和对应的值
2、键名不重新索引
3、无论是全部数字键名还是混合,都只是追加键名和值,如果键名相同则不进行追加,即把最先出现的值作为最终结果返回
例1:数字键名
'a',
);
$b = array(
'u',
);
$c = $a + $b;
var_dump($c);
输出:
[0]=>
string(1) "a"
}
例2:数字键名
66=>'a',
);
$b = array(
60=>'u',
66=>'c'
);
$c = $a + $b;
var_dump($c);
输出:
[66]=>
string(1) "a"
[60]=>
string(1) "u"
}
例3:字符键名
$a = array(
1=>'a',
2=>'b',
'c'=>'c',
'd'=>'d',
);
$b = array(
1=>'u',
3=>'v',
'c'=>'w',
'd'=>'x',
'y'=>'y',
60=>'z',
);
$c = $a + $b;
var_dump($c);
?>
输出:
[1]=>
string(1) "a"
[2]=>
string(1) "b"
["c"]=>
string(1) "c"
["d"]=>
string(1) "d"
[3]=>
string(1) "v"
["y"]=>
string(1) "y"
[60]=>
string(1) "z"
}
2、array array_merge ( array array1 [, array array2 [, array ...]] )
规则:
array_merge() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则该键名后面的值将覆盖前一个值。
然而,如果数组包含数字键名,后面的值将不会覆盖原来的值,而是附加到后面。
如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。
注意:
1、数字索引,不会覆盖,值合并后,键名会连续方式重新索引
2、字符串键名,则该键名后面的值将覆盖前一个值
例1:数字键名
'a',
);
$b = array(
'u',
);
$c = array_merge($a, $b);
var_dump($c);
输出:
[0]=>
string(1) "a"
[1]=>
string(1) "u"
}
例2:数字键名
66=>'a',
);
$b = array(
60=>'u',
66=>'c'
);
$c = array_merge($a, $b);
var_dump($c);
输出:
[0]=>
string(1) "a"
[1]=>
string(1) "u"
[2]=>
string(1) "c"
}
例3:字符键名
1=>'a',
2=>'b',
'c'=>'c',
'd'=>'d',
);
$b = array(
1=>'u',
3=>'v',
'c'=>'w',
'd'=>'x',
'y'=>'y',
60=>'z',
);
$c = array_merge($a, $b);
var_dump($c);
输出:
[0]=>
string(1) "a"
[1]=>
string(1) "b"
["c"]=>
string(1) "w"
["d"]=>
string(1) "x"
[2]=>
string(1) "u"
[3]=>
string(1) "v"
["y"]=>
string(1) "y"
[4]=>
string(1) "z"
}
3、array array_merge_recursive ( array array1 [, array ...] )
array_merge_recursive() 将一个或多个数组的单元合并起来,一个数组中的值附加在前一个数组的后面。返回作为结果的数组。
如果输入的数组中有相同的字符串键名,则这些值会被合并到一个数组中去,这将递归下去,因此如果一个值本身是一个数组,本函数将按照相应的条目把它合并为另一个数组。
然而,如果数组具有相同的数组键名,后一个值将不会覆盖原来的值,而是附加到后面。
注意:
1、规则跟array_merge基本相同,只是在处理相同字符键名的时候,采用递归追加
例1:数字键名
'a',
);
$b = array(
'u',
);
$c = array_merge_recursive($a, $b);
var_dump($c);
输出:
[0]=>
string(1) "a"
[1]=>
string(1) "u"
}
例2:数字键名
'a',
);
$b = array(
'u',
);
$c = array_merge_recursive($a, $b);
var_dump($c);
输出:
[0]=>
string(1) "a"
[1]=>
string(1) "u"
}
例3:字符键名
1=>'a',
2=>'b',
'c'=>'c',
'd'=>'d',
);
$b = array(
1=>'u',
3=>'v',
'c'=>'w',
'd'=>'x',
'y'=>'y',
60=>'z',
);
$c = array_merge_recursive($a, $b);
var_dump($c);
输出:
[0]=>
string(1) "a"
[1]=>
string(1) "b"
["c"]=>
array(2) {
[0]=>
string(1) "c"
[1]=>
string(1) "w"
}
["d"]=>
array(2) {
[0]=>
string(1) "d"
[1]=>
string(1) "x"
}
[2]=>
string(1) "u"
[3]=>
string(1) "v"
["y"]=>
string(1) "y"
[4]=>
string(1) "z"
}
在php编程中,对数值进行取整数,一般会用到如下的函数:
Floor: 计算小于指定数的最大整数。
round: 四舍五入。
来看一个简单的例子。
$a=20;
$b = 6;
echo ($a/$b)."<br>"; //out 3.3333333333333
echo ceil($a/$b)."<br>"; //out 4
echo floor($a/$b)."<br>"; //out 3
echo round($a/$b)."<br>"; //out 3
//by www.
?>
另外,为大家介绍下PHP取整数常用的四种方法。
主要用到四个函数:ceil,floor,round,intval。
1,ceil — 进一法取整
说明
float ceil ( float value )
返回不小于 value 的下一个整数,value 如果有小数部分则进一位。ceil() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大。
例子:
echo ceil(4.3); // 5
echo ceil(9.999); // 10
?>
2,floor — 舍去法取整
说明
float floor ( float value )
返回不大于 value 的下一个整数,将 value 的小数部分舍去取整。floor() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大。
例子:
echo floor(4.3); // 4
echo floor(9.999); // 9
?>
3,round — 对浮点数进行四舍五入
说明
float round ( float val [, int precision] )
返回将 val 根据指定精度 precision(十进制小数点后数字的数目)进行四舍五入的结果。precision 也可以是负数或零(默认值)。
例子:
echo round(3.4); // 3
echo round(3.5); // 4
echo round(3.6); // 4
echo round(3.6, 0); // 4
echo round(1.95583, 2); // 1.96
echo round(1241757, -3); // 1242000
echo round(5.045, 2); // 5.05
echo round(5.055, 2); // 5.06
?>
4,intval — 对变数转成整数型态
例子:
echo intval(4.3); //4
echo intval(4.6); // 4
?>
php获取当前系统时间的代码:
<?php
//方法1
echo date("Y-m-d h:i:s");
//方法2
date_default_timezone_set('Asia/Chongqing'); //系统时间差8小时问题
$now = getdate(time());
$cur_wday=$now['wday'];
$date = date("Y-m-d H:i:s $cweekday[$cur_wday]");
echo $date;
//by www.
?>
date函数中字母代表的含义:
a - "am" 或 "pm"
A - "AM" 或 "PM"
B - Swatch Internet Time
d - 月份中的第几天,有前导零的 2 位数字,例如 "01" to "31"
D - 星期中的第几天,文本表示,3 个字母,例如 "Fri"
F - 月份,完整的文本格式,例如 "January"
g - 小时,12 小时格式,没有前导零,例如 "1" 到 "12"
G - 小时,24 小时格式,没有前导零,例如 "0" 到 "23"
h - 小时,12 小时格式,例如 "01" 到 "12"
H - 小时,24 小时格式,例如 "00" 到 "23"
i - 分钟,例如 "00" 到 "59"
I(“i”的大写的字母)- 如果是夏令时则为 "1",否则为 "0"
j - 月份中的第几天,没有前导零,例如 "1" 到 "31"
l(“L”的小写字母)- 星期中的第几天,完整的文本格式,例如 "Friday"
L - 布尔值表示是否为闰年,例如 "0" 或者 "1"
m - 月份,例如 "01" to "12"
M - 月份,文本表示,3 个字母,例如 "Jan"
n - 月份,没有前导零,例如 "1" 到 "12"
O - 与格林威治时间相差的小时数,例如 "+0200"
r - RFC 822 格式的日期,例如 "Thu, 21 Dec 2000 16:01:07 +0200"(PHP 4.0.4新增)
s - 秒数,例如 "00" 到 "59"
S - 每月天数后面的英文后缀,2 个字符,例如 "st","nd","rd" 或者 "th"
t - 给定月份所应有的天数,例如 "28" 到 "31"
T - 本机所在的时区,例如 "EST" 或 "MDT"(【译者注】在 Windows 下为完整文本格式,例如“Eastern Standard Time”,中文版会显示“中国标准时间”。)
U - 从 Unix 纪元(January 1 1970 00:00:00 GMT)开始至今的秒数
w - 星期中的第几天,数字表示,例如 "0"(星期天)到 "6" (Saturday)
W - ISO-8601 格式年份中的第几周,每周从星期一开始(PHP 4.1.0 新加的)
Y - 年份,4 位数字,例如 "1999"
y - 年费,2 位数字,例如 "99"
Z - 时差偏移量的秒数(例如 "-43200" 到 "43200")。UTC 西边的时区偏移量总是负的,UTC 东边的时区偏移量总是正的。