正序与倒序排列 php,Php--常用工具和常见问题

1.使用递归获取树中值:

function tree($arr, $pid = 0){

$result = array();

foreach ($arr as $key => $value) {

if ($value['pid'] == $pid) {

$result[] = $v;

tree($arr, $v['id']);

}

}

return $result;

}

2.//array_filter过滤某个数组中值为空的数据

$userInfo = array_filter($userInfo,create_function('$v','return !empty($v);'));

3.//array_map可以将数组info中某个值actual_amount获取,通过array_sunm求和

$total = array_sum(array_map(function($val) {

return $val['actual_amount'];

}, $info));

4.//array_multisort将数组按某个key值自定义正序/倒序排列

$hardwareGoods = array_values($hardwareGoods);

foreach($hardwareGoods as $key=>$val){

$infos = array();

foreach($val['hardwareList'] as $k => $v){

$infos[] = $v['sort'];

}

if($infos) {

array_multisort($infos, SORT_ASC, $hardwareGoods[$key]['hardwareList']);

}

}

5.PHP检测链接是否存在

在PHP中,检查某个链接是否存在,有两个方法,一个是使用curl,另外一个是

获得HTTP的header的响应码,如果是200的则是OK,如果是404的话就找不到了,例子如下:

1) 使用get_headers:

1

2

3

4

5

6

7

8

9

10

11

12

13

$headers = @get_headers($url);

if($headers[0] =='HTTP/1.1 404 Not Found')

{

echo "URL not Exists";

}

else

{

echo "URL Exists";

}

?>

get_headers中有第2个参数,是true的话,结果将会是个关联数组

2) 使用CURL

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

$curl = curl_init($url);

curl_setopt($curl, CURLOPT_NOBODY, true);

$result = curl_exec($curl);

if ($result !== false)

{

$statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);

if ($statusCode == 200)

{

echo "URL Exists"

}

}

else

{

echo "URL not Exists";

}

?>

CURLOPT_NOBODY指定了只是建立连接,而不取整个报文的内容

6.二维数组中某个重复字段的值只保留此字段第一次出现的值,后来出现的值进行修改

$oIdLists = array_column($data,"oId");    //$data为需要处理的二维数组

$oIdList = array_unique($oIdLists);

$repeat  = array_diff_assoc($oIdLists,$oIdList);

$new = array_keys($repeat);

foreach($new as $k => $v){

$data[$v]["oId"] = 0;

}

return $data;

7.文章列表搜索

function arrList($arrs,$keywords=NULL,$type=array('title')){

foreach ($arrs as $key => $searchData) {

$arr = array();

foreach($searchData as $values=>$v ) {

for ($i=0;$i

if ($values==$type[$i]){

array_push($arr, $values);

}

}

}

for ($a=0;$a

if (strpos($searchData[$arr[$a]],$keywords)) {

$result[] = $searchData;

}

}

}

return $result;

}

7、mysql查询某字段值重复的数据

select user_name,count(*) as count from user group by user_name having count>1;

8、mysql查询json列里面具体的某个属性值

select * from table where  url = 'xxx' and JSON_EXTRACT(request, "$.sn") = '32157941632868502672';

9、已编译安装过扩展的php如何单独安装扩展

安装zip扩展:https://www.jianshu.com/p/730364a25906

wget http://pecl.php.net/get/zip-1.15.4.tgz

tar zxvf zip-1.15.4.tgz

cd zip-1.15.4.tgz

phpize

./configure --with-php-config=/usr/bin/php-config

make

sudo make install

10、Laravel 官方文档推荐的 Nginx 配置

# Laravel 默认重写规则;删除将导致 Laravel 路由失效且 Nginx 响应 404。

location / {

try_files $uri $uri/ /index.php?$query_string;

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值