加密相关
1、md5加密
在 common.php 文件中写
// 应用公共文件
if(!function_exists('encrypt_password')){
//密码加密函数
function encrypt_password($string)
{
//加盐
$salt = 'sanelm4lkmfds3prrf';
return md5($salt . md5($string));
}
}
数组相关
1、数组自定义排序
<?php
//这个是两个字段的排序,是按照从小到大排的。先比较name字段,再比较age字段
//如何实现从小到大? 一定要参数1大于参数2的时候返回1
function my_sort($oba, $obb){
if (is_object($oba) && is_object($obb)){
//如果是对象
if($oba->name > $obb->name){
return 1;
}elseif ($oba->name == $obb->name){
return ($oba->age >= $obb->age) ? 1 : -1;
}else{
return -1;
}
}
if (is_array($oba) && is_array($obb)){
//如果是数组
if($oba['name'] > $obb['name']){
return 1;
}elseif ($oba['name'] == $obb['name']){
return ($oba['age'] >= $obb['age']) ? 1 : -1;
}else{
return -1;
}
}
}
$info = array(['name'=>'2、学习','age'=>33],['name'=>'1、加油','age'=>88]);
usort($info,'my_sort');
var_dump($info);
//排序 从小到大
usort($children ,function ($obj1,$obj2){
return $obj1['server_filename'] > $obj2['server_filename'] ? 1 : -1;
});
2、过滤数组
因为匿名函数无法使用外部的参数,所以要加上 use关键字
$children = array_filter($arr,function ($obj) use($pid){
return $obj['parent_path'] == $pid;
});
3、数组转字符串,与字符串转数组
implode 使用一个字符串将数组变成字符串
<?php
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
echo $comma_separated; // lastname,email,phone
// Empty string when using an empty array:
var_dump(implode('hello', array())); // string(0) ""
?>
explode — 使用一个字符串分割另一个字符串,返回一个数组
<?php
// 示例 1
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
// 示例 2
$data = "foo:*:1023:1000::/home/foo:/bin/sh";
list($user, $pass, $uid, $gid, $gecos, $home, $shell) = explode(":", $data);
echo $user; // foo
echo $pass; // *
?>
4、判断数组存在某个键
第一种
array_key_exists($key, $array)
第二种
isset($array[$key])
字符串相关
1、字符串重复打印
<?php
//字符串
$str= "hello,PHP!";
//将上述字符串重复10次
echo str_repeat($str, 10);
2、换行打印
1、控制台打印输出
PHP 中换行可以用 PHP_EOL 来替代,以提高代码的源代码级可移植性:
- unix系列用 \n
- windows系列用 \r\n
- mac用 \r
<?php
echo PHP_EOL;
//windows平台相当于 echo "\r\n";
//unix\linux平台相当于 echo "\n";
//mac平台相当于 echo "\r";
?>
2、网页的情况
直接打印
即可echo "{$key}<br><br>";
3、字符串拼接变量
```php <?php $msg = “hello”; //1、普通的拼接 echo $msg.” Tom”; echo PHP_EOL;
//2、必须双引号才可以解析 echo “{$msg} Tom”;
<a name="bYAO2"></a>
# 数字相关
<a name="wbfpm"></a>
## 1、PHP保留两位小数的几种方法
```php
$num = 10.4567;
//第一种:利用round()对浮点数进行四舍五入
echo round($num,2); //10.46
//第二种:利用sprintf格式化字符串
$format_num = sprintf("%.2f",$num);
echo $format_num; //10.46
//第三种:利用千位分组来格式化数字的函数number_format()
echo number_format($num, 2); //10.46
//或者如下
echo number_format($num, 2, '.', ''); //10/46
循环相关
1、遍历数组(只能查看)
<?php
$array = array(
array("name"=>"张三1","age"=>14,"sex"=>"男"),
array("name"=>"张三2","age"=>14,"sex"=>"男"),
array("name"=>"张三3","age"=>14,"sex"=>"男")
);
foreach ($array as $key => $value)
{
echo $value['name'].PHP_EOL;
}
2、遍历数组,并且修改值
for
<?php
$array = array(
array("name"=>"张三1","age"=>14,"sex"=>"男"),
array("name"=>"张三2","age"=>14,"sex"=>"男"),
array("name"=>"张三3","age"=>14,"sex"=>"男")
);
for ($i=0; $i<count($array); $i++)
{
$array[$i]['name'] = "王五".$i;
}
var_dump($array);
foreach
foreach($array as $k => $v){
$array[$k] = 1;
}
虽然$k和$v一样也是拷贝的,但拷贝的$k的值还是和原数组的$k的值是一样的,所以这样就可以成功了。
一种比较高级的方法:可以很容易地通过在 $v 之前加上 & 来修改数组的元素。此方法将以引用赋值而不是拷贝一个值。例如:
foreach($array as &$v){
$v = 1;
}
unset($v); // 最后取消掉引用
文件相关
1、写入字符串到文件(自动创建文件,不创建文件夹)
<?php
//字符串
$str= ' aaa123 ';
$str = $str.'456'.PHP_EOL;
$str = $str.'abc';
echo $str;
file_put_contents('./1.txt',$str); //默认覆盖
file_put_contents('./1.txt',$str,FILE_APPEND); //追加