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;
}