寻找操作方法详解,PHP数组与数据结构的函数

1.遍历后压入反转数组,输出
2.array_unshift — 在数组开始插入贰个或七个单元,将盛传的单元插入到
array 数组的早先
int array_unshift ( array &$array , mixed $value1 [, mixed $… ] )

6.5.18 PHP数组与数据结构的函数

count函数

php删除特定数组值

<?php
class Node{
        public $data;
        public $next;
}
//创建一个链表
$linkList=new Node();
$linkList->next=null;
$temp=$linkList;
for($i=1;$i<=10;$i++){
        $node=new Node();
        $node->data="aaa{$i}";
        $node->next=null;
        $temp->next=$node;
        $temp=$node;
}
function printListFromTailToHead($linkList){
        $arr=array();
        $p=$linkList;
        while($p->next!=null){
                $p=$p->next;
                array_unshift($arr,$p->data);
        }
        return $arr;
}
$arr=printListFromTailToHead($linkList);
var_dump($arr);

数组与数据结构

效果:计算数组中成分的个数或对象的性情个数

首先

 

array_pop — 将数组最终多少个单元弹出(出栈)
语法:mixed array_pop ( array &array )
array_pop() 弹出并赶回 array 数组的最终多少个单元,并将数组 array
的长度减一。如果 array 为空(大概不是数组)将赶回 NULL。

返回值:

  1. 数组恐怕目的, 再次来到数组的单元个数恐怕目的的习性个数
  2. Null,返回0
  3. 非数组,也非NULL,通通重回1

    <?php
    $arr=array('春','夏','秋','冬');
    echo count($arr);//4
    echo '<br/>';
    
    $str='false';
    echo count($str);//1
    echo '<br/>';
    
    $res=null;
    echo count($res);//0
    echo "<br/>";
    
    $arr=array('春','夏','秋','冬',array('a','b','c'));
    echo count($arr),'<br/>';//5
    echo count($arr,1),'<br/>';//第2个参数为1时,代表递归的来计算数组的单元个数
    
    $arr=array('春','夏','秋','冬',array('a',array('b','c')));
    echo count($arr,1),'<br/>';
    ?>
    

    range函数

    ### 成效:建立多少个涵盖内定范围单元的数组

    ### 重回值:重返的数组中从 start 到 limit 的单元,包涵它们本身。

    <?php
    $arr=range(0,20);
    foreach($arr as $v){
     echo $v.'<br/>';
    }
    $arr=range(0,20,2);
    foreach($arr as $k=>$v){
      echo $k.'###'.$v.'<br/>';
    }
    ?>
    

    array_flip函数 array array_flip ( array $trans )

    ### 成效:沟通键值

    ### 参数:array $trans 要沟通键/值对的数组。

    ### 重临值:成功时回来交流后的数组,倘若失利重回 NULL。键值对调后,出现3个一律的键,前面的会覆盖前面的键

    <?php
    $arr=array('a'=>1,'b'=>2,'c'=>3);
    print_r($arr);//Array ( [0] => a [1] => b [2] => c ) 
    print_r(array_flip($arr));//Array ( [a] => 0 [b] => 1 [c] => 2 ) 
    ?>
    

    array_sum函数 number array_sum ( array $array )

    ### 功能:计算数组中全部值的和,将数组中的全数值的和以平头或浮点数的结果回到。

    ### 参数:array 输入的数组。

    ### 重临值:全部值的和以平头或浮点数的结果回到

    <?php
    $arr=range(1,100);
    print_r($arr);
    echo array_sum($arr);
    ?>
    

    shuffle函数 bool shuffle ( array &$array )

    ### 功用: 将数组打乱

    ### 参数:array 待操作的数组

    ### 重回值:成功时再次回到 TRUE, 只怕在挫折时回来 FALSE。该函数是引用传值

    <?php
    $arr=range(1,100);
    print_r($arr);
    echo array_sum($arr);
    if(shuffle($arr)){
    echo '打乱成功';
    print_r($arr);//
       }
    ?>
    

    array_reverse函数 array array_reverse ( array $array [, bool $preserve_keys = false ] )

    ### 功能:接受数组 array 作为输入并回到三个单元为相反顺序的新数组。

    ### 参数:array 输入的数组。preserve_keys 若是设置为 TRUE 会保留数字的键。 非数字的键则不受这一个设置的熏陶,总是会被保留。

    ### 再次回到值:再次来到反转后的数组。

    <?php
    
    $arr = array('a'=>'春','b'=>'夏','c'=>'秋','d'=>'冬'); 
    print_r($arr); //Array ( [a] => 春 [b] => 夏 [c] => 秋 [d] => 冬 )
    print_r(array_reverse($arr)); //Array ( [d] => 冬 [c] => 秋 [b] => 夏 [a] => 春 )
    $arr = array('春','夏','秋','冬'); 
    print_r($arr); 
    print_r(array_reverse($arr)); 
    print_r(array_reverse($arr,true));
    ?>
    

    array_push函数 int array_push ( array &$array , mixed $var [, mixed $… ] )

    ### 成效:将一个或八个单元压入数组的终极(入栈)

    ### 参数:array 输入的数组。 var 要压入的值。

    ### 重回值:重临处理今后数组的因素个数。

    <?php
    $stack = array("orange", "banana");
    array_push($stack, "apple", "raspberry");
    print_r($stack);
    ?> 
    

    array_pop函数 mixed array_pop ( array &$array )

    ### 功能:将数组最后3个单元弹出(出栈)

    ### 参数:array 须求做出栈的数组。

    ### 重回值:再次回到 array 的最后贰个值。假设 array 是空(倘使不是三个数组),将会回到 NULL 。

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

    array_shift函数 mixed array_shift ( array &$array )

    ### 成效:将数组初步的单元移出数组

    ### 参数:array 输入的数组。

    ### 重临值:重返移出的值,假若 array 为 空或不是二个数组则赶回 NULL。

    <?php
    $stack = array("orange", "banana", "apple", "raspberry");
    $fruit = array_shift($stack);
    print_r($stack);
    ?> 
    

    array_unshift函数 int array_unshift ( array &$array , mixed $var [, mixed $… ] )

    ### 效用:在数组开端插入3个或七个单元

    ### 参数:array 输入的数组。 var 先河插入的变量。

    ### 再次回到值:重回 array 数组新的单元数目。

    <?php
    $queue = array("orange", "banana");
    array_unshift($queue, "apple", "raspberry");
    print_r($queue);
    ?>
    

    explode函数 array explode ( string $delimiter , string $string [, int $limit ] )

    ### 成效:此函数重返由字符串组成的数组,逐个元素都以 string 的1个子串,它们被字符串 delimiter 作为边界点分割出来

    ### 重临值:再次回到由字符串组成的 array,逐个元素都以 string 的3个子串,它们被字符串 delimiter 作为边界点分割出来。

    <?php
    $str = 'abc,中国,美国,日本';
    $arr = explode(',',$str); 
    print_r($arr);//Array ( [0] => abc [1] => 中国 [2] => 美国 [3] => 日本 )
    ?>
    

    implode函数 string implode ( string $glue , array $pieces )或者string implode ( array $pieces )

    ### 作用:将1个一维数组的值转化为字符串

    ### 参数:glue 默许为空的字符串。 pieces 你想要转换的数组。

    ### 重回值:重临三个字符串,其情节为由 glue 分割开的数组的值。

    <?php
    $str = 'abc,中国,美国,日本';
    $arr = explode(',',$str); 
    print_r($arr);
    $arr = explode(',',$str); 
    echo implode('~',$arr),'<br />';
    echo implode($arr);
    ?>
    

 代码如下

array_push — 将二个或八个单元压入数组的末段(入栈)
语法:int array_push ( array &array, mixed var [, mixed …] )
array_push() 将 array 当成二个栈,并将盛传的变量压入 array
的尾声。array 的长短将依照入栈变量的数据扩展。

var_dump($context[‘linktree’]);

array_shift — 将数组起先的单元移出数组

得到

语法:mixed array_shift ( array &array )
array_寻找操作方法详解,PHP数组与数据结构的函数。shift() 将 array 的第1个单元移出并作为结果回到,将 array
的长度减一并将装有其余单元向前移动1位。全体的数字键宿将改为从零先导计数,文字键老将不变。假诺array 为空(大概不是数组),则赶回 NULL。

 代码如下

array_unshift — 在数组发轫插入三个或多少个单元
语法: int array_unshift ( array &array, mixed var [, mixed …] )
array_unshift() 将盛传的单元插入到 array
数组的起来。注意单元是当做完整被插入的,由此传出单元将维持同一的种种。全部的数值键新秀修改为从零初叶重新计数,全部的文字键名保持不变。

array(3) {
[0]=>
array(2) {
[“url”]=>
string(52) “
[“name”]=>
string(28) “City of Steam Official Forum”
}
[1]=>
array(2) {
[“url”]=>
string(55) “
[“name”]=>
string(28) “City of Steam Official Forum”
}
[2]=>
array(2) {
[“url”]=>
string(62)

[“name”]=>
string(12) “Announcement”
}
}

例1.php

自个儿要去掉中间那么些。

<?php
    $zhan = array();

    array_push($zhan, "1");
    array_push($zhan, "2");
    array_push($zhan, "3", 4, 5,6);


    echo array_pop($zhan)."<br>";
    echo array_pop($zhan)."<br>";
    echo array_pop($zhan)."<br>";

    print_r($zhan);

用:unset($context[‘linktree’][‘1’]);

例2.php

结果:

<?php
    $dl = array();

    array_unshift($dl, 1);
    array_unshift($dl, 2);
    array_unshift($dl, 3);
    array_unshift($dl, 4);
    array_unshift($dl, 5);
    array_unshift($dl, 6);

    echo array_shift($dl)."<br>";

    print_r($dl);

 代码如下

array(2) {
[0]=>
array(2) {
[“url”]=>
string(52) “
[“name”]=>
string(28) “City of Steam Official Forum”
}
[2]=>
array(2) {
[“url”]=>
string(62)

[“name”]=>
string(12) “Announcement”
}
美高梅开户网址,}

就少了三个[1]

让那中档的1机动编号:

 代码如下

Array ( [0] => apple [1] => banana [3] => dog )

可是那种办法的最大缺陷是尚未重建数组索引,就是说,数组的第多少个要素没了。
经过查资料后,原来PHP提供了那几个功用,只可是很直接。那一个函数是array_splice()。
为了使用方便,作者封装成了二个函数,方便我们利用:

 代码如下

<?php

function array_remove(&$arr, $offset)

{
 
array_splice($arr, $offset, 1);

}

$arr = array(‘apple’,’banana’,’cat’,’dog’);
 
array_remove($arr, 2);
 
print_r($arr);

?>

由此测试能够知晓,2的地方这一个成分被真正的去除了,并且重新树立了目录。

程序运转结果:

 代码如下

Array ( [0] => apple [1] => banana [2] => dog )

php判断 数组中的数值

有特意的函数,不要用for循环,系统函数能兑现快速搜索:

in_array
(PHP 4, PHP 5)

in_array — 检查数组中是否存在有些值

说明
bool in_array ( mixed $needle, array $haystack [, bool $strict] )

在 haystack 中搜寻 needle,倘若找到则赶回 TRUE,否则重临 FALSE。

若果第九个参数 strict 的值为 TRUE 则 in_array() 函数还会检讨 needle
的花色是或不是和 haystack 中的相同。

留意: 倘若 needle 是字符串,则相比是分别轻重缓急写的。

瞩目: 在 PHP 版本 4.2.0 从前,needle 不容许是一个数组。

例 292. in_array() 例子

 代码如下

<?php
$os = array(“Mac”, “NT”, “Irix”, “Linux”);
if (in_array(“Irix”, $os)) {
    echo “Got Irix”;
}
if (in_array(“mac”, $os)) {
    echo “Got mac”;
}
?>

第2个条件战败,因为 in_array() 是分别轻重缓急写的,所以上述程序突显为:

Got Irix

例 293. in_array() 严俊项目检查例子

 代码如下

<?php
$a = array(‘1.10’, 12.4, 1.13);

if (in_array(‘12.4’, $a, true)) {
    echo “‘12.4’ found with strict checkn”;
}
if (in_array(1.13, $a, true)) {
    echo “1.13 found with strict checkn”;
}
?>
上例将出口:

1.13 found with strict check

例 294. in_array() 中用数组作为 needle

 代码如下

<?php
$a = array(array(‘p’, ‘h’), array(‘p’, ‘r’), ‘o’);

if (in_array(array(‘p’, ‘h’), $a)) {
    echo “‘ph’ was foundn”;
}
if (in_array(array(‘f’, ‘i’), $a)) {
    echo “‘fi’ was foundn”;
}
if (in_array(‘o’, $a)) {
    echo “‘o’ was foundn”;
}
?>
上例将出口:

  ‘ph’ was found
  ‘o’ was found

向二个数组中投入数值

作者们可以透过函数来落成,将2个或三个要素插入到数组中去,也足以直接抬高进去。
(1)向数组中直接抬高数据,新成分的下标是从原数组下标最大值之后开端的。
(2)array_unshift()函数在数组的上马添加3个或两个因素。
语法如下:
int array_unshift ( array &array, mixed var [,mixed …]) ;
array_unshift()将盛传的因素插入到array数组的初叶。成分是用作全体被插入的,传入成分将保持同样的相继。全体的数值键新秀从0开首重复计数,文字键名保持不变。
(3)array_push()函数将贰个或八个单元添加到数组的结尾。
语法:
int array_push ( array &array, mixed var [, mixed …]) ;
array_push()将array当成贰个栈,并将盛传的变量添加到array的末段。该函数重回数组新的单元总数。向数组中添加多少的以身作则如下。
示例:

 代码如下

<?php
$shili = array (“1″,”2″,”3″,”4″) ;
$shili[]=5 ;                            //间接抬高数据
print_r ( $shili ) ;
echo “<br>” ;
$shili2 = array (“m”,”n”) ;
array_unshift ($shili2,”o”,”p”) ;          //添比索素于数组的起先
print_r ( $shili2 ) ;
echo “<br>” ;
$shili3 = array (“Php”) ;
array_push ($shili3, “MySQL”,”Apache”) ; //添欧成分于数组的末段
print_r ($shili3) ;
?>
结果为:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4]
=> 5 )
Array ( [0] => o [1] => p [2] => m [3] => n )
Array ( [0] => Php [1] => MySQL [2] => Apache )

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图