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

php实用总汇之array

作者:用户 来源:互联网 时间:2017-12-01 10:26:59

总汇

php实用总汇之array - 摘要: 本文讲的是php实用总汇之array,   array_shift — 将数组开头的单元移出数组 array_pop — 将数组最后一个单元弹出(出栈)       ------------------------- sort asort ksort sort只依据值从小到大排


 

array_shift — 将数组开头的单元移出数组

array_pop — 将数组最后一个单元弹出(出栈)

 

 

 

------------------------- sort asort ksort

sort只依据值从小到大排序,键值不参与排序
asort依据值排序,键值参与排序
ksort依据键值排序,值参与排序


sort只依据值从小到大排序,键值不参与排序。例

 <?php

   $arr=array("a"=>"d","d"=>"c","b"=>"a");

   sort($arr);

   var_dump($arr);

 ?>

结果

array(3) { [0]=> string(1) "a" [1]=> string(1) "c" [2]=> string(1) "d" }

asort依据值进行排序,键值参与排序

 <?php

   $arr=array("a"=>"d","d"=>"c","b"=>"a");

   asort($arr);

   var_dump($arr);

 ?>

结果

array(3) { ["b"]=> string(1) "a" ["d"]=> string(1) "c" ["a"]=> string(1) "d" }

ksort依据键值进行排序,值参与排序

 <?php

   $arr=array("a"=>"d","d"=>"c","b"=>"a");

   ksort($arr);

   var_dump($arr);

 ?>

结果

array(3) { ["a"]=> string(1) "d" ["b"]=> string(1) "a" ["d"]=> string(1) "c" }

 

----------------------- 将数组倒序 array_reverse 

 

 

------------------------ array_slice

 

$a=array(
    3=> 'aadfa ',
    5=> 'bds ',
    2=> 'ac '
);

现在想让这个数组的那个key取消,重新排序,即生成这种形式的:
$a=array(
    0=> 'aadfa ',
    1=> 'bds ',
    2=> 'ac '
);

后面的值顺序保持不变。
怎样进行这个排序。
<?php
$a=array(
    3=> 'aadfa ',
    5=> 'bds ',
    2=> 'ac '
);

$a   =   array_slice($a,   0);
?>
Array
(
        [0]   =>   aadfa
        [1]   =>   bds
        [2]   =>   ac
)

 

------------------------array_keys — 返回数组中所有的键名

$array = array(0 => 100, "color" => "red");
print_r(array_keys($array));
Array
(
    [0] => 0
    [1] => color
)


if (array_keys($orderInfo) != array (
                        'con',
                        'num',
                        'odds',
                        'am',
                        'playType',
                        'oddSet'
                )) {
...
}

 

 

 

----------------------array_intersect — 计算数组的交集

 

------------------in_array()

 

--------------array_intersect — 计算数组的交集

 

---------------------array_flip() 交换数组中的键和值。

 

 

---------------------array_map  将回调函数作用到给定数组的单元上

(PHP 4 >= 4.0.6)
array_map --  将回调函数作用到给定数组的单元上
说明
array array_map ( mixed callback, array arr1 [, array ...])

array_map() 返回一个数组,该数组包含了 arr1 中的所有单元经过 callback 作用过之后的单元。callback 接受的参数数目应该和传递给 array_map() 函数的数组数目一致。

例子 1. array_map() 例子
<?php
function cube($n) {
    return $n*$n*$n;
}

$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);
?>

这使得 $b 成为:

Array
(
    [0] => 1
    [1] => 8
    [2] => 27
    [3] => 64
    [4] => 125
)

例子 2. array_map() - 使用更多的数组
<?php
function show_Spanish($n, $m) {
    return "The number $n is called $m in Spanish";
}

function map_Spanish($n, $m) {
    return array ($n => $m);
}

$a = array(1, 2, 3, 4, 5);
$b = array("uno", "dos", "tres", "cuatro", "cinco");

$c = array_map("show_Spanish", $a, $b);
print_r($c);

$d = array_map("map_Spanish", $a , $b);
print_r($d);
?>

结果为:

// printout of $c
Array
(
    [0] => The number 1 is called uno in Spanish
    [1] => The number 2 is called dos in Spanish
    [2] => The number 3 is called tres in Spanish
    [3] => The number 4 is called cuatro in Spanish
    [4] => The number 5 is called cinco in Spanish
)

// printout of $d
Array
(
    [0] => Array
        (
            [1] => uno
        )

    [1] => Array
        (
            [2] => dos
        )

    [2] => Array
        (
            [3] => tres
        )

    [3] => Array
        (
            [4] => cuatro
        )

    [4] => Array
        (
            [5] => cinco
        )

)

通常使用了两个或更多数组时,它们的长度应该相同,因为回调函数是平行作用于相应的单元上的。如果数组的长度不同,则最短的一个将被用空的单元扩充。

本函数一个有趣的用法是构造一个数组的数组,这可以很容易的通过用 NULL 作为回调函数名来实现。

 

 

----------------------range  建立整数范围的数组

 

array range(int low, int high);传回从low到high的整数数组

 

$monkeys=range(1,52);

 

 

------------------------array_splice 移除数组的一部份且替代它

array array_splice(array input, int offset, int [length] , array [replacement] );

此函数将数组input从offset到length移除,若有提供参数replacement则以replacement的元素来替代。

 

array_splice($monkeys,5,1);  将第五个元素移除

 

 

------------------------array_merge  函数把两个或多个数组合并为一个数组。

array_merge(array1,array2,array3...)

 

<?php
$a1=array("a"=>"Horse","b"=>"Dog");
$a2=array("c"=>"Cow","b"=>"Cat");
print_r(array_merge($a1,$a2));
?>

 

<?php
$a=array(3=>"Horse",4=>"Dog");
print_r(array_merge($a));
?>
Array ( [0] => Horse [1] => Dog )

 

 

----------------------array_rand() 返回一个随机单元的键名,否则就返回一个包含随机键名的数组。这样你就可以随机从数组中取出键名和值。

 

$b1=  'a,g2,uu,fk' ;

   $bArray  =  explode ( ',' ,  $b1 );

  echo  $bArray [ array_rand ( $bArray )];

 

 

----------------------array_combine

array_combine(array1,array2)  两个数组的长度必须一致

array_combine() 函数通过合并两个数组来创建一个新数组,其中的一个数组是键名,另一个数组的值为键值。

如果其中一个数组为空,或者两个数组的元素个数不同,则该函数返回 false。

 


<?php
$a1=array("a","b","c","d");
$a2=array("Cat","Dog","Horse","Cow");
print_r(array_combine($a1,$a2));
?>
输出Array ( [a] => Cat [b] => Dog [c] => Horse [d] => Cow )

 

 

 

-------------------------array_pop

array_pop -- 将数组最后一个单元弹出(出栈)


mixed array_pop ( array array )

array_pop() 弹出并返回 array 数组的最后一个单元,并将数组 array 的长度减一。如果 array 为空(或者不是数组)将返回 NULL。

    注: 使用本函数后会重置(reset())数组指针。

例子 1. array_pop() 例子
<?php
$stack = array ("orange", "banana", "apple", "raspberry");
$fruit = array_pop ($stack);
print_r($stack);
?>

经过此操作后,$stack 将只有 3 个单元:
Array
(
   [0] => orange
   [1] => banana
   [2] => apple
)

并且 rasberry 将被赋给 $fruit。

警告

本函数可能返回布尔值 FALSE,但也可能返回一个与 FALSE 等值的非布尔值,例如 0 或者 ""。请参阅布尔类型章节以获取更多信息。应使用 === 运算符来测试本函数的返回值。

 

 

 

---------------------array_push

array_push() 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。

该函数等于多次调用 $array[] = $value。



注释:即使数组中有字符串键名,您添加的元素也始终是数字键。(参见例子 2)

注释:如果用 array_push() 来给数组增加一个单元,还不如用 $array[] =,因为这样没有调用函数的额外负担。

注释:如果第一个参数不是数组,array_push() 将发出一条警告。这和 $var[] 的行为不同,后者会新建一个数组。
例子 1
<?php
$a=array("Dog","Cat");
array_push($a,"Horse","Bird");
print_r($a);
?>输出:

Array ( [0] => Dog [1] => Cat [2] => Horse [3] => Bird )例子 2
带有字符串键的数组:

<?php
$a=array("a"=>"Dog","b"=>"Cat");
array_push($a,"Horse","Bird");
print_r($a);
?>输出:

Array ( [a] => Dog [b] => Cat [0] => Horse [1] => Bird )

 

 

---------------------------------array_unique  剔除重复的数组

 

array_unique -- 移除数组中重复的值,移除后面的重复值
说明
array array_unique ( array array)

array_unique() 接受 array 作为输入并返回没有重复值的新数组。

注意键名保留不变。array_unique() 先将值作为字符串排序,然后对每个值只保留第一个遇到的键名,接着忽略所有后面的键名。这并不意味着在未排序的 array 中同一个值的第一个出现的键名会被保留。

    注: 当且仅当 (string) $elem1 === (string) $elem2 时两个单元被认为相同。就是说,当字符串的表达一样时。

    第一个单元将被保留。

例子 1. array_unique() 例子
<?php
$input = array ("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique ($input);
print_r($result);
?>

上例将输出:
Array
(
   [a] => green
   [0] => red
   [1] => blue
)

 

 

 

------------------------------------合并数组

 

 

array(
        'id'=>1,
        ‘name'=>aa
),
array(
        'id'=>2,
        'name'=>bb
)
复制代码这两个数组是用foreach循环得到的,还可能是只有一个二维数组,也可能是十几个二维数组。这些数组我都想在循环外面用到,但是,直接在外面用的话,只能取到最后一个数组的值,所以只能合并了,合并成三维,然后在smarty里输出,但是,怎么合并呢,我弄了很久都没辙,特来求助,请高手不吝赐教。

$fanwei_date[] = array($min_date,$max_date);

 

 

 

 

 

 

 

-----------------------------------关于PHP数组的基础知识总结

关于数组:

PHP 中的数组是复杂的,并且比许多其他高级语言中的数组更灵活。

数组 array 是一组有序的变量 , 其中每个变量被叫做一个元素。

数组可以被编号或者相关联,也就是数组的元素可以分别根据数字索引或文本化字符串来访问

PHP 中,数组可以包含标量 ( 整数,布尔,字符串,浮点数 ) 或复合值 ( 对象甚至其他数组 ) ,并且可以包含不同类型的值

1 。创建数组

PHP 提供创建数组的 array() 语言结构

$numbers = array(5,4,3,2,1);

$words = array("web","database","application");

echo $numbers[2];

echo $words[0];

--------------------- 输出结果 ----------------------------------------

3web

---------------------------------------------------------------------

默认情况下,数组的第一个元素的索引为 0 。数组中包含的值可以通过使用方括号 [] 语法来检索和修改

$numbers[5] = 0;

数字化索引的数组可以创建位从任何索引值开始

$numbers = array(1=>"one","two","three","four");

也可以松散的索引

$numbers = array(1=>"one",3=>"three",5=>"zero");

可以通过给变量赋予一个没有参数的 array() 来创建空数组。然后可以通过使用方括号 [] 语法来添加值

$error = array();

$error[] = "no error!!!";

$error[] = "second error!!!";

echo $error[0];

echo $error[1];

--------------------- 输出结果 ----------------------------------------

no error!!!second error!!!

---------------------------------------------------------------------

2. 关联数组

关联数组 (associative array) 使用字符串索引 ( 或键 ) 来访问存储在数组中的值

关联索引的数组对于数据库层交互非常有用

$newarray = array("first"=>1,"second"=>2,"third"=>3);

echo $newarray["second"];

$newarray["third"]=5;

echo $newarray["third"];

--------------------- 输出结果 ----------------------------------------

25

---------------------------------------------------------------------

3. 异构数组

PHP 数组可以包含不同种类的值

$mixedBag = array("cat",42,8.5,false);

var_dump(mixedBag);

4. 多维数组

创建包含数组的数组,数组维数没有限制,但是一般很难想象一个多于三维的数组的用法

$planets = array(array("MM",1,2),array("NN",3,4),array("BB",5,6),array("VV",7,8));

print $planets[2][0];

$planets2 = array("MM"=>array("AA"=>1,"SS"=>2),

"NN"=>array("DD"=>3,"FF"=>4),

"BB"=>array("GG"=>6,"HH"=>7,"P"=>array("haha!!!!")),

"VV"=>array("JJ"=>6,"KK"=>7,"LL"=>array("one","two")));

print $planets2["VV"]["LL"][0];

--------------------- 输出结果 ----------------------------------------

BBone

---------------------------------------------------------------------

5. 使用循环访问数组

遍历数组的方法有很多 ( 使用 while,for 循环 ) 或者 foreach 语句,最容易的是 foreach 语句

$length = array(0,107,202,400,475);

// 将厘米转换为寸

for($i=0;$i<5;$i++)

{

echo ($length[$i]/3);

}

$j=0;

while(isset($length[$j]))

{

echo ($length[$j]/3);

$j++;

}

foreach($length as $cm)

{

echo ($cm/3);

}

--------------------- 输出结果 ----------------------------------------

0

35.6666666667

67.3333333333

133.333333333

158.333333333

0

35.6666666667

67.3333333333

133.333333333

158.333333333

0

35.6666666667

67.3333333333

133.333333333

158.333333333

<!-- [if !supportEmptyParas]--> <!-- [endif]-->

---------------------------------------------------------------------

foreach 还可以迭代关联数组的值

$sound = array("cow"=>"moo","dog"=>"woof",

"pig"=>"oink","duck"=>"quack");

foreach ($sound as $animal=>$noice)

{

echo "$animal 得叫声是这样的 $noice $noice......";

}

--------------------- 输出结果 ----------------------------------------

cow 的叫声是这样的 moo moo......

dog 的叫声是这样的 woof woof......

pig 的叫声是这样的 oink oink......

duck 的叫声是这样的 quack quack......

<!-- [if !supportEmptyParas]--> <!-- [endif]-->

---------------------------------------------------------------------

<!-- [if !supportEmptyParas]--> <!-- [endif]-->

6. 使用数组指针

与存储在数组中的键和关联值一起, PHP 还拥有一个指向数组当前元素的内部索引,

有几个函数使用并更新该数组索引来提供对数组元素的访问

$a = array("a","b","c","d","e","f");

echo current($a);

each($a);

key($a);// 目前数组的指针,返回其索引

echo current($a);// 当前元素的值

each($a);// 返回当前元素的值并将内部索引指向下一个元素

each($a);

echo current($a);

next($a);// 指向下一个元素

echo current($a);

prev($a);// 指向上一个元素

echo current($a);

end($a);// 指向最后一个元素

echo current($a);

key($a);

echo current($a);

--------------------- 输出结果 ----------------------------------------

abdedff

---------------------------------------------------------------------

7. 基本的数组函数

integer count(mixed var)// 在数组中返回元素的个数,也可用于任何的变量

number max(array numbers)// 返回数组中的最大值

number min(array numbers)// 返回数组中的最小值

boolean in_array(mixed needle,array haystack[,bollean strict])// 查找数组中的值,第三个参数可选,强制执行类型检查

mixed array_search(mixed needle,array haystack[,boolean strict])// 返回 键 而不是布尔值,

找不到时返回 false ,找到的元素如果正好是第一个元素,则返回 0 ,而 PHP 会自动转化为 false 所以需要使用 === 判断,如下

$a = array("a","b","c","d","e","f");

$index = array_search("a",$a);

if($index === false)

echo " 在数组 a 中未发现字符 'a'";

else

echo "Index = $index";

--------------------- 输出结果 ----------------------------------------

Index = 0

---------------------------------------------------------------------

array array_reverse(array source[,bool preserve_keys])// 逆转数组 , 生成一个新数组,可选参数为 true 时,保留索引和元素之间的关联

$a = array("a","b","c","d","e","f");

$newa = array_reverse($a);// 直接翻转

echo $newa[0];

$newb = array_reverse($a,true);// 依旧保留了索引和元素之间的关联

echo $newb[0];

--------------------- 输出结果 ----------------------------------------

fa

---------------------------------------------------------------------

sort(array subject[,integer sort_flag])// 根据 值 进行升序排列(在原数组中重新排列元素)

rsort(array subject[,integer sort_flag])// 根据 值 进行降序排列(在原数组中重新排列元素)

可选参数可以指定为按数字方式 SORT_NUMERIC 还是字符串方式 SORT_STRING 或者通常的方式 SORT_REGULAR 排序

sort() 、 rsort() 可以用于关联数组,但是 键 将丢失

asort(array subject[,integer sort_flag])// 根据 值 进行升序排列(在原数组中重新排列元素),保持键值关联

arsort(array subject[,integer sort_flag])// 根据 值 进行降序排列(在原数组中重新排列元素),保持键值关联

当 asort() arsort() 用于非关联数组时,元素按排序后的次序重新排列,但是访问元素的索引不改变

integer ksort(ayyay subject [,integer sort_flag])// 根据 键或索引 进行升序排列

integer krsort(ayyay subject [,integer sort_flag])// 根据 键或索引 进行降序排列

usort(array subject, string compare_function)// 根据用户定义排序,用户定义自己的排序规则函数,但函数必须符合

uasort(array subject, string compare_function)//integer my_compare_function(mixed a, mixed b),a>b 返回 1 , a uksort(array subject, string compare_function)//a 等于 b 时返回 0

$numbers = array(16,3,2,171,5,24,6,19);

sort($numbers);

foreach($numbers as $n)

echo $n." ";

$numbers = array(16,3,2,171,5,24,6,19);

rsort($numbers);

foreach($numbers as $n)

echo $n." ";

$numbers = array(16,3,2,171,5,24,6,19);

sort($numbers,SORT_STRING);

foreach($numbers as $n)

echo $n." ";

<!-- [if !supportEmptyParas]--> <!-- [endif]-->

$a = array("o"=>"kk","e"=>"zz","z"=>"hh","a"=>"rr");

asort($a);

foreach ($a as $keyname=>$keyvalue)

echo $keyvalue;

<!-- [if !supportEmptyParas]--> <!-- [endif]-->

$a = array("o"=>"kk","e"=>"zz","z"=>"hh","a"=>"rr");

ksort($a);

foreach ($a as $keyname=>$keyvalue)

echo $keyvalue;

<!-- [if !supportEmptyParas]--> <!-- [endif]-->

// 基于长度比较两个字符串

function cmp_length($a,$b)

{

if(strlen($a) < strlen($b))

return -1;

if(strlen($a) > strlen($b))

return 1;

return 0;

}

$animals = array("cow","ox","monkey","mimi");

usort($animals,"cmp_length");

foreach($animals as $an)

echo $an;

--------------------- 输出结果 ----------------------------------------

2 3 5 6 16 19 24 171 171 24 19 16 6 5 3 2 16 171 19 2 24 3 5 6 hhkkrrzzrrzzkkhhoxcowmimimonkey

---------------------------------------------------------------------

array_merge($a,$b)// 组合数组,个人认为是比较有趣的函数之一,从两个数组生成一个数组,具有相同 键 的值会被覆盖

//////////////////////////// 代码部分 ////////////////////////////////////////

$a = array("name"=>"zhangsan",10,100);

$b = array("name"=>"lisi",4,6,8);

$c = array_merge($a,$b);

var_dump($c);

//////////////////////////////////////////////////////////////////////////

--------------------- 输出结果 ----------------------------------------

array(6) { ["name"]=> string(4) "lisi" [0]=> int(10) [1]=> int(100) [2]=> int(4) [3]=> int(6) [4]=> int(8) }

---------------------------------------------------------------------

array array_combine(array $a,array $b)//a 数组的值为新数组的键, b 数组的值为新数组的值,数组长度不同时,返回 false

//////////////////////////// 代码部分 ////////////////////////////////////////

$a = array("name","math","china");

$b = array("zhangsan",4,6);

$c = array_combine($a,$b);

var_dump($c);

//////////////////////////////////////////////////////////////////////////

--------------------- 输出结果 ----------------------------------------

array(3) { ["name"]=> string(8) "zhangsan" ["math"]=> int(4) ["china"]=> int(6) }

---------------------------------------------------------------------

<!-- [if !supportEmptyParas]--> <!-- [endif]-->

[ 本帖最后由 wangzhanf 于 2006-11-14 20:44 编辑 ]

<!-- [if !supportEmptyParas]--> <!-- [endif]-->

精华

    0

在线时间

    0 小时

注册时间

    1970-1-1

最后登录

    1970-1-1

<!-- [if !supportEmptyParas]--> <!-- [endif]-->

查看详细资料

      

<!-- [if !supportEmptyParas]--> <!-- [endif]-->

TOP

PHP 论坛 AmPHP1.0 服务器组合套件正式版发布

馒头

<!-- [if !supportEmptyParas]--> <!-- [endif]-->

游客

<!-- [if !supportEmptyParas]--> <!-- [endif]-->

UID

    3205

帖子

    10

大红花

    0 朵

PMB

     0 元

注册时间

    1970-1-1

<!-- [if !supportEmptyParas]--> <!-- [endif]-->

    * 发短消息

    * 加为好友

    * 当前离线

<!-- [if !supportEmptyParas]--> <!-- [endif]-->

      

2 楼 大 中 小 发表于 2006-11-14 01:58  只看该作者

关于 PHP 数组的基础知识总结(不断更新)附件中带有源码

关于 PHP 字符串的基础知识总结(不断更新)附件中带有源码

字符串

注意单引号和双引号的区别

注意转义字符 / 的使用 //,/",/$

注意使用 8 进制或 16 进制字符表示 /xf6

echo "H/xf6me";// 需要察看是否支持此类文字编码

--------------------- 输出结果 ----------------------------------------

H 鰉 e

---------------------------------------------------------------------

1. 使用 printf() 和 sprintf() 创建格式化的输出

printf() 直接输出到输出缓冲区

sprintf() 的输出作为字符串返回

如 printf(" 输出内容 %.2f/n",$PI());

所有的转换规范都以 % 开头

数据类型有 d- 整数 ,s- 字符串 ,f- 浮点数 ,b- 二进制

.2 是一个可选的宽度指标,小数点右边输出使用 0 填充

printf("%.2f",3.14159);

printf("%10.2f",3.14159);

printf("%.10f",3.14159);

printf("%.9s",abcdefghijklmn);

printf("%5.2f,%f,%7.3f/m",3.14159,3.14159,3.14159);

printf("%b %d %f %s /n",123,123,123,"test");

--------------------- 输出结果 ----------------------------------------

3.14 3.143.1415900000abcdefghi 3.14,3.141590, 3.142/m1111011 123 123.000000 test

---------------------------------------------------------------------

2. 字符串填充

string str_pad(string input 原始字串 , int length 添加后的总长度 [, string padding 要填充的字符 [, int pad_type] 填充类型 ])

填充类型有添加在左边 STR_PAD_LEFT ,默认添在右边,填充在两端 STR_PAD_BOTH

$index = array("one"=>1,"two"=>155,"three"=>1679);

echo "

";

echo str_pad(" 这是标题 ",50," ",STR_PAD_BOTH)."/n";

foreach($index as $inkey=>$inval)

        echo str_pad($inkey,30,".").str_pad($inval,20,".",STR_PAD_LEFT)."/n";

echo "

";

--------------------- 输出结果 ----------------------------------------

<!-- [if !supportEmptyParas]--> <!-- [endif]-->

<!-- [if !supportEmptyParas]--> <!-- [endif]-->

                     这是标题                     

one..............................................1

two............................................155

three.........................................1679

<!-- [if !supportEmptyParas]--> <!-- [endif]-->

<!-- [if !supportEmptyParas]--> <!-- [endif]-->

---------------------------------------------------------------------

string strtolower(string subject)// 转换为小写

string strtoupper(string subject)// 转换为大写

string ucfirst(string subject)// 首字母大写

string ucwords(string subject)// 每个单词首字母大写

string ltrim(string subject)// 去左空白

string rtrim(string subject)// 去右空白

string trim(string subject) 去左右空白,空白包括 null, 制表符,换行符,回车符和空格

string n12br(string source)// 将 /n 表示的换行符转换为 <BR /> 标记

3. 字符串比较

integer strcmp(sting str1,string str2) //str1 大于 str2 返回 -1 str1 小于 str2 返回 1 str1 和 str2 相等返回 0

integer strmcmp(sting str1,string str2,integer length) // 第三个参数限制 length 个字符的比较

print strcmp("aardvark","aardwolf");

print strncmp("aardvark","aardwolf",4);

--------------------- 输出结果 ----------------------------------------

-10

---------------------------------------------------------------------

strcasecmp() 和 strncasecmp() 是不区分大小写的比较函数

4. 查找和抽取子字符串

string substr(sting source,integer start[,integer length])// 从 start 开始取 length 个字符

start 和 length 可以使用负值

$var = "abcdefgh";

print substr($var,2);// 从 0 开始计数

print substr($var,2,3);

print substr($var,-1);// 从字符串的末尾开始

print substr($var,-5,2);

print substr($var,-5,-2);

--------------------- 输出结果 ----------------------------------------

cdefgh

cde

h

de

def

<!-- [if !supportEmptyParas]--> <!-- [endif]-->

---------------------------------------------------------------------

integer strpos(string haystack,string needle[,integer offset])// 查找子字符串的位置,返回第一次出现 .

integer strrpos(string haystack,string needle)// 只搜索单个字符(多个字符只取第一个),返回最后一次出现的索引 .

还有常见的从 字符串中抽取找到的部分 的函数

string strstr(string haystack,string needle)// 不区分大小写

string stristr(string haystack,string needle)// 区分大小写

string strrchr(string haystack,sting needle)

*********** array explode(string separator,string subject[,integer limit])// 返回一个字符串数组

array implode(string glue,array pieces)// 返回一个字符串

/////////////////////////// 代码段 ////////////////////////////////////////

$guest = "this is a string";

$guestArray = explode(" ",$guest);

var_dump($guestArray);

sort($guestArray);

echo implode(",",$guestArray);

////////////////////////////////////////////////////////////////////////

--------------------- 输出结果 ----------------------------------------

array(4) { [0]=> string(4) "this" [1]=> string(2) "is" [2]=> string(1) "a" [3]=> string(6) "string" } a,is,string,this

---------------------------------------------------------------------

5. 替换字符和子字符串

string substr_replace(string source,string replace,int start[,int length])

 

 

 

 

 

 

 

 

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