php数组去重索引重置,PHP常用方法(不定时更新)

目录前言

1、解决跨域问题

2、json_encode 中文不转码

3、二维数组排序

4、如果Linux服务器上php.ini关闭了错误提示,导致结果406,500。打印错误信息。

5、list 的使用

6、函数 array_column()的使用

7、一维数组去重,删除0,null,索引重置

8、把秒转为时分秒

9、接口返回

10、四舍五入保留2位小数。

11、隐藏手机号中间4位。

12、换行变量 PHP_EOL

13、PHP判断数组 键 是否存在 isset(),array_key_exists()

14、引入js的文件,带参数?_=1553829159194

15、接口测试工具

16、如果最后一个字是“区”,就删除。

17、假设页面内容如下:

18、创建0777目录,mkdir,chmod配合使用

前言

鉴于我之前写的这篇 PHP常用方法(不定时更新) 可读性不太好,以后都在这里更新

1、解决跨域问题

public function __construct()

{

parent::__construct();

header('Access-Control-Allow-Origin:*'); //跨域

}

2、json_encode 中文不转码

die( json_encode( $result,JSON_UNESCAPED_UNICODE ) );

3、二维数组排序

$users = array(

array('name' => 'xiao1', 'age' => 20),

array('name' => 'xiao2', 'age' => 18),

array('name' => 'xiao3', 'age' => 22)

);

/*按照年龄升序*/

//要将age提取出来存储到一维数组里,然后按照age升序排列

$ages= array_column($users, 'age');

array_multisort($ages, SORT_ASC, $users);

/*先按照年龄升序,再按照姓名降序*/

$ages= array_column($users, 'age');

$names = array_column($users, 'name');

array_multisort($ages, SORT_ASC, $names, SORT_DESC, $users);

4、如果Linux服务器上php.ini关闭了错误提示,导致结果406,500。打印错误信息。

ini_set("display_errors", "On");

error_reporting(E_ALL | E_STRICT);

5、list 的使用

//list使用

public function test(){

list($name, $sex) = $this->getInfo();

echo "姓名:{$name},性别:{$sex}";

}

public function getInfo(){

return ['张三', '男'];

}

//输出:姓名:张三,性别:男

6、函数 array_column()的使用

$array = [

['id'=>'99', 'name'=>'九十九'],

['id'=>'88', 'name'=>'八十八'],

['id'=>'77', 'name'=>'七十七'],

];

$arr1 = array_column($array, 'name');

//输出:array (0 => '九十九',1 => '八十八',2 => '七十七',)

$arr2 = array_column($array, 'name', 'id');

//输出:array ( 99 => '九十九', 88 => '八十八', 77 => '七十七',)

array_column() 与 array_combine() 搭配使用

$ids = array_column($array, 'id');

$arrayCombine = array_combine($ids, $array);

/*$arrayCombine 输出:

array (

99 => array ( 'id' => '99', 'name' => '九十九', ),

88 => array ( 'id' => '88', 'name' => '八十八', ),

77 => array ( 'id' => '77', 'name' => '七十七', ),

)*/

7、一维数组去重,删除0,null,索引重置

$array = array(0,1,0,2,null,1,3,4,null,0);

$array = array_values(array_unique(array_diff($array, [0, null])));//去除0,null;去重

var_export($array);

/*输出:

array (

0 => 1,

1 => 2,

2 => 3,

3 => 4,

)

*/

8、把秒转为时分秒

把秒数转为时分秒,gmstrftime函数,不过该函数仅限于24小时内的秒数转换。

$r = gmstrftime('%H:%M:%S',(3600*23)+123);

var_export($r);

//输出: '23:02:03'

9、接口返回

接口正常返回 1 ,异常返回 -1 。如果数据为空,是1;-1是参数异常或者逻辑错误。

10、四舍五入保留2位小数。

round($x, 2);

11、隐藏手机号中间4位。

$num = "13711111111";

$str = substr_replace($num,'****',3,4);

12、换行变量 PHP_EOL

使用场景:一个小小的换行,其实在不同的平台有着不同的实现。

本来在unix世界换行就用/n来代替,但是windows为了体现他的不同,就用/r/n,更有意思的是在mac中用/r。

PHP_EOL就是php中已经定义好的变量,代表php的换行符。

这个变量会根据平台而变,在windows下会是/r/n,在linux下是/n,在mac下是/r。

13、PHP判断数组 键 是否存在 isset(),array_key_exists()

$array = ['a'=>'我是第一个', 'b'=>'我是第二个', 'c'=>'我是第三个'];

if(isset($array['a']))

echo 'a存在 ';

else

echo 'a不存在 ';

if(array_key_exists('d', $array))

echo 'd存在 ';

else

echo 'd不存在 ';

//输出 a存在 d不存在

14、引入js的文件,带参数?_=1553829159194

有时候有些地址后面有个这样的参数 ?_=1553829159194

http://***/index/index?_=1553829159194

在url后面加一个timestamp时间戳,保证每次的url都是变化的,这样就不会读取浏览器缓存了。

15、接口测试工具

接口测试工具推荐 postman

16、如果最后一个字是“区”,就删除。

$distName = '南山区';

$lastChar = mb_substr($distName, -1);

if($lastChar=='区'){

$lastChar = mb_substr($distName, 0, -1);

}

echo $lastChar;

17、假设页面内容如下:

后台返回的数据结构:

{"eat":["大米","小麦"],"drink":["水","茶"]}

不太好,这样还要前端对应到相关字段,eat吃的;drink是喝的。

最好这样返回:

[{"name":"吃的","list":["大米","小麦"]},{"name":"喝的","list":["水","茶"]}]

18、创建0777目录,mkdir,chmod配合使用

用mkdir创建在windows没问题,但是在linux使用mkdir创建文件夹会出现没有最大权限0777的情况;所以要再使用chmod函数,(chmod函数针对linux创建文件夹权限不足的情况)

//若目录不存在则创建目录

$filePath = '../file/20900101';

if(@!file_exists($filePath)){

mkdir($filePath, 0777, true);

chmod($filePath, 0777);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值