zoukankan      html  css  js  c++  java
  • php学习笔记[数组的常用函数]

    简介:这是php学习笔记------[数组的常用函数]的详细页面,介绍了和php,有关的知识、技巧、经验,和一些php源码等。

    class='pingjiaF' frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=338290' scrolling='no'>
    <?php
    /* 数组的常用函数
     *
     *	数组的排序函数
     *	  sort()
     *	  rsort()
     *	  usort()
     *	  asort()
     *	  arsort()
     *	  uasort()
     *	  ksort()
     *	  krsort()
     *	  uksort()
     *	  uatsort()
     *	  natcasesort()
     *	  array_multisort()
     *
     *	   1.简单的数组排序
     *	     sort() rsort()
     *	   2.根据键名对数组排序
     *	     ksort() krsort()
     *	   3.根据元素的值对数组排序
     *	     asort() arsort()
     *	   4.根据"自然数排序“法对数组排序
     *	     natsort()//区分大小写字母比较 natcasescort()//不区分大小写字母的比较
     *	   5.根据用户自定义规则对数组排序
     *	     usort() uasort() uksort()对键排序
     *	   6.对维数组的排序
     *	     array_multisort()
     *
     *	拆分、合并、分解、接合的数组函数
     *	   1.array_slice()
     *	   2.array_splice()//删除
     *	   3.array_combine()//合并
     *	   4.array_merge();//合并
     *	   5.array_intersect();//多个数组的交集
     *	   6.array_diff();//返回多个数组的差集
     *
     *	数组与数据结构的函数
     *	  1.使用数组实现堆栈 //先进后出
     *	  	array_push() array_pop()
     *	  2.使用数组实现队列 //先进先出
     *	  	array_unshift() array_shift() unset()
     *
     *	
     *	其他与数组操作有关的函数
     *	   array_rand()
     *	   shuffle()
     *	   array_sum()
     *	   range()
     */
    
    //简单数组排序的使用
    $data=array(5,8,1,7,2);
    sort($data);//元素由小到大进行排序
    print_r($data);//Array ( [0] => 1 [1] => 2 [2] => 5 [3] => 7 [4] => 8 )
    rsort($data);//元素由大到小进行排序
    print_r($data);//Array ( [0] => 8 [1] => 7 [2] => 5 [3] => 2 [4] => 1 )
    
    //根据键名排序的例子
    $data_2=array(5=>"five",8=>"eight",1=>"one",7=>"seven",2=>"two");
    ksort($data_2);//对数组的下标进行由小到大排序
    print_r($data_2);//Array ( [1] => one [2] => two [5] => five [7] => seven [8] => eight )
    krsort($data_2);//对数组的下标进行由大到小排序
    print_r($data_2);//Array ( [8] => eight [7] => seven [5] => five [2] => two [1] => one )
    
    
    
    //根据元素的值对数组排序
    $data_3=array("1"=>"Linux","a"=>"Apache","m"=>"MySQL","l"=>"PHP");
    //asort() arsort  与 sort() rsort()的区别在于 前者排序后保持原有的键名,后者不保持原有键名,且键名从0开始
    asort($data_3);
    print_r($data_3);//Array ( [a] => Apache [1] => Linux [m] => MySQL [l] => PHP )
    echo '<br/>';
    arsort($data_3);
    print_r($data_3);//Array ( [l] => PHP [m] => MySQL [1] => Linux [a] => Apache )
    echo '<br/>';
    sort($data_3);
    print_r($data_3);//Array ( [0] => Apache [1] => Linux [2] => MySQL [3] => PHP )
    echo '<br/>';
    rsort($data_3);
    print_r($data_3);//Array ( [0] => PHP [1] => MySQL [2] => Linux [3] => Apache )
    
    //根据”自然数排序法“对数组排序(0-9短者优先)
    $data_4=array("file.txt","file11.txt","file2.txt","file22.txt");
    sort($data_4);
    print_r($data_4);//Array ( [0] => file.txt [1] => file11.txt [2] => file2.txt [3] => file22.txt )
    echo '<br>';
    natsort($data_4);
    print_r($data_4);//Array ( [0] => file.txt [2] => file2.txt [1] => file11.txt [3] => file22.txt )
    echo '<br>';
    natcasesort($data_4);
    print_r($data_4);//Array ( [0] => file.txt [2] => file2.txt [1] => file11.txt [3] => file22.txt )
    echo '<br>';
    
    //用户自定义排序函数
    echo '<br/>';
    $data_5=array("Linux","Apache","MySQL","PHP");
    usort($data_5,"sortbylen");//通过元素长度排序
    print_r($data_5);//Array ( [0] => PHP [1] => MySQL [2] => Linux [3] => Apache )
    function sortbylen($one,$two){
    	if(strlen($one)==strlen($two))
    		return 0;
    	else
    		return (strlen($one)>strlen($two))?1:-1;
    }
    
    //拆分、合并、分解、接合的数组函数
    echo '<br/>';
    $data_6=array("Linux","Apache","MySQL","PHP");
    print_r(array_slice($data_6,1,2));//取下标为1、2的元素
    //Array ( [0] => Apache [1] => MySQL ) 下标重置从0开始
    echo '<br/>';
    
    print_r(array_slice($data_6,-2,1));//从后边的第二个开始取返回一个,不是从0开始的
    //Array ( [0] => MySQL ) 下标重置从0开始
    echo '<br/>';
    
    print_r(array_slice($data_6,1,2,true));
    //Array ( [1] => Apache [2] => MySQL )  保留原有的下标
    
    echo '<br/>';
    
    
    //array_combine()
    $a1=array("OS","WebServer","DataBase","Language");
    $a2=array("Linux","Apache","MySQL","PHP");
    
    print_r(array_combine($a1,$a2));//第一个参数作为键名,第二个作为值来合并
    //Array ( [OS] => Linux [WebServer] => Apache [DataBase] => MySQL [Language] => PHP ) 
    
    echo '<br/>';
    
    //array_merge()
    $a3=array("OS","WebServer","DataBase","Language");
    $a4=array("Linux","Apache","MySQL","PHP");
    $a5=$a3+$a4;
    print_r($a5);//因为两个数组下标重复所以显示这样
    //Array ( [0] => OS [1] => WebServer [2] => DataBase [3] => Language )
    echo '<br/>';
    print_r(array_merge($a3,$a4));//合并并重新索引
    //Array ( [0] => OS [1] => WebServer [2] => DataBase [3] => Language [4] => Linux [5] => Apache [6] => MySQL [7] => PHP ) 
    
    echo '<br/>';
    
    //array_intersect()
    $a7=array("OS","WebServer","DataBase","Language",1,2,3);
    $a8=array("Linux","Apache","MySQL","PHP",2,3,4);
    print_r(array_intersect($a7,$a8));//Array ( [5] => 2 [6] => 3 )
    echo '<br/>';
    
    //array_diff()
    $a9=array(1,2,3,4);
    $a10=array(3,4,5,6);
    print_r(array_diff($a9,$a10));//Array ( [0] => 1 [1] => 2 ) 
    //返回第一个数组跟第二个相差的元素
    echo '<br/>';
    
    
    //使用数组实现堆栈
    $b=array(1,2,3,4);
    $b[]="a";//入栈
    array_push($b,"b","c");//使用函数入栈
    print_r($b);//Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => a [5] => b [6] => c )
    echo '<br/>';
    
    $value=array_pop($b);//使用函数出栈
    print_r($b);//Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => a [5] => b )
    echo '<br/>';
    echo $value;//显示出栈的元素的值 c
    echo '<br/>';
    
    //使用数组实现队列
    $c=array(1,2,3);
    print_r($c);//Array ( [0] => 1 [1] => 2 [2] => 3 )
    echo '<br/>';
    array_unshift($c,"abc","bcd");//入队
    print_r($c);//Array ( [0] => abc [1] => bcd [2] => 1 [3] => 2 [4] => 3 ) 
    echo '<br/>';
    $values=array_shift($c);//出队
    print_r($c);// Array ( [0] => bcd [1] => 1 [2] => 2 [3] => 3 )
    echo '<br/>';
    unset($c[2]);//删除指定位置元素
    print_r($c);//Array ( [0] => bcd [1] => 1 [3] => 3 )
    echo '<br/>';
    
    
    //array_rand()  随机返回数组下标
    $arr=array(1,3,4,5,76,7,99,6,2,3);
    echo array_rand($arr);//返回的是随机的数组元素的下标
    echo $arr[array_rand($arr)];//随机显示数组元素的值
    echo '<br/>';
    //shuffle()  随机重新排列数组
    $arr2=array(32,35,33);
    shuffle($arr2);
    print_r($arr2);//数组元素位置随机变换
    echo '<br/>';
    //array_sum()  求和
    $arr3=array(1,3,5);
    echo array_sum($arr3); //返回9
    echo '<br/>';
    print_r($arr3);//Array ( [0] => 1 [1] => 3 [2] => 5 )
    echo '<br/>';
    //range(最小值,最大值,步长)
    $arr4=range(0,100,10);
    print_r($arr4);//Array ( [0] => 0 [1] => 10 [2] => 20 [3] => 30 [4] => 40 [5] => 50 [6] => 60 [7] => 70 [8] => 80 [9] => 90 [10] => 100 ) 
    
    ?>

    爱J2EE关注Java迈克尔杰克逊视频站JSON在线工具

    http://biancheng.dnbcw.info/php/338290.html pageNo:8
  • 相关阅读:
    LeetCode 230. Kth Smallest Element in a BST
    LeetCode 114. Flatten Binary Tree to Linked List
    LeetCode 222. Count Complete Tree Nodes
    LeetCode 129. Sum Root to Leaf Numbers
    LeetCode 113. Path Sum II
    LeetCode 257. Binary Tree Paths
    Java Convert String & Int
    Java Annotations
    LeetCode 236. Lowest Common Ancestor of a Binary Tree
    LeetCode 235. Lowest Common Ancestor of a Binary Search Tree
  • 原文地址:https://www.cnblogs.com/ooooo/p/2246230.html
Copyright © 2011-2022 走看看