1. 云栖社区>
  2. PHP教程>
  3. 正文

PHP半路出家(2)

作者:用户 来源:互联网 时间:2017-12-01 15:07:07

PHP半路出家(2) - 摘要: 本文讲的是PHP半路出家(2), 函数是每个编程语言必不可少的,我得了解了PHP有什么不同最犀利的就是返回类型,不用在函数声明注明唯一需要注意的是你得用对应的类型接收返回值~C++里的老面孔 按引用传值"&"默认参数递归函数---画表单的利器!    英雄不问出处

函数是每个编程语言必不可少的,我得了解了PHP有什么不同
最犀利的就是返回类型,不用在函数声明注明
唯一需要注意的是你得用对应的类型接收返回值~
C++里的老面孔

按引用传值"&"
默认参数
递归函数---画表单的利器!
 

 

英雄不问出处,弱类型造就的是有灵魂的数组
 

赋值方式:
 
$say = array("Chinese" , "English" , "French");
//相当于
$say[0] = "Chinese"  ;    $say[1] = "English"  ;   $say[2] = "French"   ;

 


 $say = array("China"=>"Chinese" , "England"=>"English" , "France"=>"French");

//相当于

$say["China"] = "Chinese"  ;

$say["England"] = "Chinese"  ;

$say["France"] = "Chinese"  ;
 

 

 

PHP的数组不同于java的数组,是一种综合了数组和map的感觉

$myArray = array(0=>"第0个","2"=>"2了","这都行"=>"这真可以");

echo $myArray[0];                  //正常模式

echo $myArray[1];                 //没有值的按空算

echo $myArray[2];                 //会输出"2了"

echo $myArray["2"];              //也会输出"2了"

echo $myArray["这都行"];           //会输出"这真可以"
 

索引自动递增

$myArray[] =0;

$myArray[] =1;

$myArray[] =2;

$myArray[] =3;

echo $myArray[3];     //会输出3
 

强大的list()可以提取数组---涉及匹配函数explore(),以后再说~
 

Range()函数也有筛选的作用
$myArray =  range("a", "z",3);    //从"a"到"z",每隔3个输出一个

//输出a d g j m p s v y

 

数组拓展 www.th7.cn
返回索引对应的值 :
print_r($myArray );

判断是否为数组:
boolean is_array(mixed var);

混合的 --- 队列+栈 --- 前后都很方便的操作  

array_unshift($vars , $key , $value);    //从头加

array_push($vars , $key , $value);       //从尾加

array_shift($vars );    //从头删:

array_pop($vars );     //从尾删:
 

数组四问 --- 查询
数组问  :   你在吗?
//对于key   :   
boolean array_key_exists($key  ,  $vars   );
//对于value   :  
boolean in_array($value  ,  $vars   );数组问  :    既然在的话,告诉我你在哪
$key  array_search(&value , $vars);数组问  :    呢给我看看你们的地址簿吧
$keys = array_keys($vars);     //返回键值数组

print_r($keys);数组问  :    都住的谁啊?
$values= array_keys($vars);     //返回键值数组

当索引不是数字的时候,我一直使用的for(int i=0;;i++)下岗了…

//返回key的
while(  $key=key($vars)  )   
{   
    next($vars);
}
//返回value的
while(  $value=current($vars)  )   
{
    next($vars);
}
取next()的方法不错,还可以继续定位~
$value prev($vars)   //前一个

$value reset($vars)   //起点

$value end($vars)   //终点 全面的看数组
总共多大?
Int count($vars)   //返回数组大小
//递归计数:
Int count($vars , 1); //第二参数是模式选择每个种类出现几次?求频率~
$vars_f array_count_values($vars); 我只想知道有几类!去除重复
$vars_u array_unique($vars); 整理一下在看
从小到大按ASCII码顺序排好(默认的,可以选择)
sort($vars);   //基本排序你排完的key值咋变了
asort($vars);      //键值不改变的排序从大到小难道只能反着看?
resort($vars)    //a1--a10-a2好,还是a1-a2-a10好?  自然排序
natsort($vars)不要因为大小写忽略排序美感
natcasesort($vars)不会只能按内容排列吧?  key排序
?ksort();

到了DIY的时候了~
usort ($vars , 'myFunction');
//myFun()的返回:小于-负数 , 等于-0 , 大于-正数

这数组结构不行,我要改改!
合并 :
array_merge(&vars1 , $vars2);递归着合并 :
array_merge_recursive(&vars1 , $vars2);
//递归的时候会将一样value值的合并成数组追加
array_combine(&vars1 , $vars2);连接
array_merge(&vars1 , $vars2);划分1:
$vars_r = array_slice($vars , 4);//去掉前四个划分2:
$vars_r = array_slice($vars ,2,-2);//去掉前2个,后2个      划分原数组不变

拆分
$vars_r = array_slice($vars , 4 ,-2);      原数组$vars,保留前4个

      返回的$vars_r拥有后2个

交集:
$vars_r = array_intersect($vars1 , $vars2 ,$vars3);差集:第一个有,其他没有的
$vars_r = array_diff($vars1 , $vars2 ,$vars3);数组元素的洗牌~ :
Shuffle($vars);求和
$sum = array_sum($vars);

 


摘自 matter605924657

以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索的 是 ,以便于您获取更多的相关知识。

弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率

40+云计算产品,6个月免费体验

稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一

云服务器9.9元/月,大学必备