PHP study 2 array function

1 数组函数中sort和asort的区别:sort会把键名变为0,1,2之类,不管你之前的数组是什么;但是asort在排序过程中会以键值为对象进行排序,但是键名不发生改变,并跟随者键值移动位置。【arsort是从高到低,asort是从底到高, ksort, krsort是对键名排序】。

 

2 count()和sizeof()用来统计数组的元素个数。

 

3 in_array() , array_key_exists() 

 

4 快速创建数组 range(0,3) ,这个跟matlab有点类似,php真是多彩啊

 

5 array_reverse 翻转 array_sum 求数组之和 array_merge 合并数组 array_flip 对调键名和值 

 

6 list($key, $value)=each($balls) reset($..) 

 

7 类似asp中的left,right函数 substr()将两者合二为一

************

string substr(string string, int start, int [length])

  参数string为要操作的字符串

  参数start为你要截取的字符串的开始位置,若start为负数时,则表示从倒数第start开始截取length个字符

  可选参数length为你要截取的字符串长度,若在使用时不指定则默认取到字符串结尾。若length为负数时,则表示从start开始向右截取到末尾倒数第length个字符的位置

  起初用这个函数时可能感觉到别扭,不过你要是把PHP substr函数的语法搞懂了,那他的功能比asp中的left和right,有过之无不及,非常好用。下面我们举例来看他的用法:

  1、从第4个字符开始截取到字符串末尾,类似asp中的left:

  < ?php $str = "www.designline.cn"; echo substr($str,4); ?>

  输出: designline.cn

  2、PHP substr函数从右边截取3个字符,类似asp中的right:

  < ?php $str = "www.designline.cn"; echo substr($str,-3); ?>

  输出:.cn

  3、PHP substr函数从第4个字符开始截取6个字符:

  < ?php $str = "www.designline.cn"; echo substr($str,4,6); ?>

  输出:design

  4、有时我们知道一个字符串的开始和结尾,中间是不定长的字符,这时除了用PHP substr函数的正则外我们还可以用substr实现(当然要得到中间的字符方法有N种,在此只是举例substr的应用):

  < ?php $str = "< |>www.designline.cn< |>"; echo substr($str,3,-3); ?>

  输出:www.designline.cn

************

 

把用过的例子附上:

 

******************************************************************************************************

 

<?php 

$seasons=array("c","x","q","d");

echo "hello array /n";

print_r($seasons);

echo "<br>";

$city=array(

    "河北"=>array("北京a1","保定a2"),

    "河南b"=>array("b郑州1","b洛阳2")

);

print_r($city);

 

//索引数组

$index=array(

    1=>"one",

    2=>"two",

    3=>"three"

);

echo "<br>";

print_r($index);

echo "<br>";

echo $index[1];

 

 

//关联数组 

$language['qiao']="qiao";

$language['zhang']="zhang";

echo "<br>";

echo "qiao is named ".$language['qiao']."<br>";

echo "zhang is named".$language['zhang'];

 

//basic run

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

    echo "<br>$key--$value<br>";

}

 

//foreach twice

foreach($city as $key=>$value)

{

    foreach($value as $value2)

    {

        echo "<br>$key---$value2<br>";

    }

}

 

for($i=1;$i<3;$i++)

{

    $value=$index[$i];

    echo "<br>--$i--$value--<br>";

}

 

//数组添加操作

$ball=array("football","soccer");

$ball[]="basketball";

echo "<br>";

print_r($ball);

 

 

//删除 

unset($ball[2]);

function myprint($a)

{

    echo "<br>";

    print_r($a);

}

myprint($ball);

 

//update

$ball[2]="basketba";

myprint($ball);

$ball[2]="basketball";

myprint($ball);

 

//sort

$color=array("yellow","red","green","grey");

sort($color);

myprint($color);

$number=array(2,34,4,342,32);

myprint($number);

sort($number,SORT_NUMERIC);

myprint($number);

 

foreach($number as $value)

{

    echo $value." ";

}

 

//在指定键名的情况下,sort会导致紊乱

$cl=array("yel"=>"yellow","re"=>"red","ge"=>"green","bl"=>"blue");

$cl2=$cl;

sort($cl);

foreach($cl as $key=>$value)

{

    echo "<br>$key--$value--<br>";

    echo "<br>**************<br>";

}

asort($cl2);

 

function printA($a)

{

    foreach($a as $key=>$value)

    {

        echo "<br>*****************<br>";

        echo "$key--->$value<br>";

 //       echo "<br>****************<br>";

    }

}

myprint($cl2);

printA($cl2);

 

//try arsort

arsort($cl2);

 

echo "<br> &&&&&&&&&&&& arsort <br>";

 

printA($cl2);

 

// ksort , krsort

$keys=array("b"=>"A","a"=>"B","c"=>"C");

ksort($keys);

printA($keys);

krsort($keys);

printA($keys);

 

// random sort

shuffle($keys);

printA($keys);

 

 

$have=array("qiao","yong");

if(in_array("qiao",$have,true))

{

    echo "<br>is in<br>";

}

 

$have['wang']="meinv";

if(array_key_exists("wang",$have))

{

    echo "<br> key is in <br>";

}

 

 

$num=count($have);

echo $num;

 

$quick=range(23,89,10);

myprint($quick);

 

$quickA=range('A','D');

myPrint($quickA);

 

// reverse

 

myPrint(array_reverse($quick));

 

echo array_sum($quick);

//myPrint(array_merge($quick,$quickA));

$sum2= array_sum(array_merge($quick,$quickA));

echo  $sum2;

 

myprint(array_flip($quick));

 

// each() list() reset()

// 这个很有意思

$final=array(1=>"eat",2=>"listen",3=>"look");

while(list($key,$value)=each($final))

{

    echo $key."....".$value;

}

reset($final);

list($nowkey,$nowvalue)=each($final);

echo $nowkey.".....".$nowvalue;

 

?>

*******************************************************************

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值