-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pythonic就是以Python的方式写出简洁优美的代码 #47
Comments
function &chhua()
{
static $b="www.jb51.net";//申明一个静态变量
$b=$b."WEB开发";
echo $b;
return $b;
}
$a=chhua();//这条语句会输出 $b的值 为“www.jb51.netWEB开发”
$a="PHP";
echo "<Br>";
$a=chhua();//这条语 句会输出 $b的值 为“www.jb51.netWEB开发WEB开发”
echo "<Br>";
$a=&chhua();//这条语句会输出 $b的值 为“www.jb51.netWEB开发WEB开发WEB开发”
echo "<Br>";
$a="JS";
$a=chhua(); //这条语句会输出 $b的值 为"JSWEB开发"
function &test()
{
static $b=0;//申明一个静态变量
$b=$b+1;
echo $b;
return $b;
}
//http://www.jb51.net/article/51985.htm
$a=test();//这条语句会输出 $b的值 为1
$a=5;
$a=test();//这 条语句会输出 $b的值 为2
$a=&test();//这条语句会输出 $b的值 为3
$a=5;
$a=test(); //这条语句会输出 $b的值 为6 |
nginx配置类似于这样: fastcgi_param HTTP_X_FORWARD_FOR $remote_addr; 上一句的目的是,将HTTP_X_FORWARD_FOR的值设置为$remote_addr的值。也就是将用户真实的ip(或用户使用代理的ip)放到HTTP_X_FORWARD_FOR中去。 $remote_addr是nginx的内置变量,这个变量它得到是用户真实的ip地址(用户使用了代理,则就是代理的ip地址)。 于是在php端通过getenv("HTTP_X_FORWARDED_FOR")就可以获取到nginx传递过来的值,是用户真实的ip地址。 |
//大体思路:由于是二维数组。所以先得到指定key的所有值。也就是转换为一维数组了。
/*
不过这个一维数组的key要使用二维数组的key。这样子一维数组排序后,方便对应到二维数组中去。就是靠这个key。
一维数组如下:
array('1'=>'a','4'=>''b','3'=>'c','5'=>'d');
1,2,4这些key值,到时候就是对应到里面去的证据
思考,如果还要加一个条件呢比如像sql那样子的:order by a,b,c
当a字段的值都相等的情况下,就启用b字段进行排序。如果还是相等,则启用c字段进行排序。
*/
/*
$keys = array();
$keys['gg'] = '8.9';
$keys[1] = '8.8';
$keys[5] = '7.5';
asort($keys);//排序有个特点,原来的key值不会改变的。只是把位置换一下。我之前以为是调换了key值。这样子,0,1,2,3,4
reset($keys);
var_dump($keys);
*/
/*
* +-------------------------------------------------------
* 快速排序
* @author wangtao 2015.6.10
* +-------------------------------------------------------
* @param $arr 要排序的数组,二维数组。对应就是数据库中的多行数据
array(
* 0=>array("字段1"=>'','字段2'=>''...)
* 1=>array("字段1"=>'','字段2'=>''...)
* 2=>array("字段1"=>'','字段2'=>''...)
* )
* @param $key_field 按照哪个字段进行排序
* @param $sort_type = asc or desc 排序方式。从小大到大,还是从大到小
* +-------------------------------------------------------
* return 按照指定排序后的一个新数组。原来的key仍然会保留
* 如:1=>array("字段1"=>'','字段2'=>''...),2=>array("字段1"=>'','字段2'=>''...)
* 按照"字段2"排序后,key为2元素可能在前面前面了,但是key值不会被修改,会原样保留
* +-------------------------------------------------------
*/
function quick_sort($arr, $key_field, $sort_type = "asc") {
if (count($arr) > 1) {
//使用哪个字段排序,先得到该字段所有数据,目的是转换成一维数组进行排序
$key_value_arr = array();
$return_arr = array();
//先判断排序的字段是否存在,如果字段根本不存在,避免打乱原来数组的顺序
foreach ($arr as $k => $v) {
@ $key_value_arr[$k] = $v[$key_field]; //得到这个字段的值
}
//php内置函数实现了按降序还是升序排,但是只支持一维数组
if ($sort_type == 'desc') {
arsort($key_value_arr);
} else {
asort($key_value_arr);
}
reset($key_value_arr);
foreach ($key_value_arr as $k => $v) {
$return_arr[$k] = $arr[$k]; //得到行
}
//var_dump($return_arr);
return $return_arr;
} else {
return $arr;
}
}
$array = array(
array('name'=>'手机','brand'=>'诺基亚','price'=>1050),
array('name'=>'笔记本电脑','brand'=>'lenovo','price'=>4300),
array('name'=>'剃须刀','brand'=>'飞利浦','price'=>3100),
array('name'=>'跑步机','brand'=>'三和松石','price'=>4900),
array('name'=>'手表','brand'=>'卡西欧','price'=>960),
array('name'=>'液晶电视','brand'=>'索尼','price'=>6299),
array('name'=>'激光打印机','brand'=>'惠普','price'=>1200),
array('name'=>'手机','brand'=>'诺基亚','price'=>1050),
);
var_dump(quickSort($array,'m'));
//看对一个数组里面元素值都为空的怎么排序
$row = array(
0=>null,
1=>null,
2=>null,
3=>null,
);
asort($row);
var_dump($row);//如果为空。则根据key值倒过来?
//http://www.cnblogs.com/wangtao_20/p/3505362.html
/*返回的是array
3 => null
2 => null
1 => null
0 => null
现在终于明白了,数据库字段中是否保持null,对于排序是有影响的。结果就会影响展示效果。
*/ |
Python正则表达式中findall返回列表中包含空字符串js 'ABCD'.match(/.$/g) re.findall(r'.\b', 'ABCD') 位置之后的零个字符''正好符合.* |
The text was updated successfully, but these errors were encountered: