php的数组、排序、查找

  • //创建数组,其值可以放任意的数据类型
         $arr[0]=111;
     
       $arr[1]=121;
         $arr[2]="nihao";
     
       $arr[3]=141.9;
         $arr[4]=null;//null要记入长度,并要占用空间,但是不会输出
     
       echo "数组长度".count($arr);
           //遍历数组中的值
     
     for($i=0;$i<count($arr);$i++){
           
     echo "<br/>".$arr[$i];
          }


  • 创建数组的第二种方式

    $arr=array(‘hello‘,‘niho‘,12.3,1);
       
      //遍历数组中的值
       
     for($i=0;$i<count($arr);$i++){
           
     echo "<br/>".$arr[$i];
            }


  • 创建数组的第三种方式 【键值的方式】 (在默认情况下,我们的元素下标是从0开始的,但是也可以自己定义)      
                         
                         
                         
                         
    案例如下:

    $arr[‘logo‘]="成都";
                 
    $arr[‘add‘]=123;
                   
        ...
                   
       或者
                 
     $arr=array("logo"=>"成都","add"=>123,4=>23);      
                         
                         
                         
                         
                         
                         
          测试如下:

    $arr=array("logo"=>"成都","add"=>123,4=>23);
       
                 //遍历数组中的值,foreach这种循环可用于对数组键值对的方式的遍历,也可以用于其他任何方式的数组遍历,foreach可以广泛运用
     
                  foreach($arr as
    $val){
                      echo
    $val;
                    }
     
                  foreach($arr as $key =>
    $value){
                     
        echo $key.":".$value;
             
               }

$arr[true]=‘hello‘;

alert($arr[1]);//$arr[1]等价于$arr[true];

$arr[null]=123;等价于$arr[""]=123;

  • 我们通常使用print_r()和var_dump()来查看数组的情况          
                         
                         
                         
                         
                         
                         
           print_r($arr);//Array ( [0] => hello [1]
    => niho [2] => 12.3 [3] => 1 )          
                         
                         
                         
                         
                 
    var_dump($arr);//array(4) { [0]=> string(5) "hello" [1]=>
    string(4) "niho" [2]=> float(12.3) [3]=> int(1) }

  • 在php中数组的长度是可以自动增长的          
                         
                         
                         
                         
                         
                         
                         
             案例:

    $arr=array(1,2);
         
    $arr[2]="zenjia";//自动给该数组分配了一个空间
         echo $arr[2];



  • php数组中几个重要的函数        
                         
                         
                         
                         
                         
                         
                         
                         
           1.count();  //统计数组的长度      
                         
                         
                         
                         
                         
                         
                         
                   2.is_array()
    //判断一个变量是否是数组                  
                         
                         
                         
                         
                         
                         
               
     3.print_r()和var_dump(),上面已经注明过了          
                         
                         
                         
                         
                         
                         
             
     4.explode()//拆分字符串,例如$arr=explode(",","a,b,c,d");测试:print_r($arr);

时间: 2024-10-21 21:30:20

php的数组、排序、查找的相关文章

C++在已排序数组中查找和值确定的第一次出现的两个数(要求时间复杂度为o(n))

#include <iostream> using namespace std; //输入一个已经按升序排序过的数组和一个数字, //在数组中查找两个数,使得它们的和正好是输入的那个数字. //要求时间复杂度是O(n).如果有多对数字的和等于输入的数字,输出任意一对即可. //例如输入数组1.2.4.7.11.15和数字15.由于4+11=15,因此输出4和11. void Grial(int a[],int x,int y) { int j=x-1; int i=0; while(a[j]&

数组高级部分--排序,查找

1.数组排序之冒泡排序: 两两比较,大的往后放放,第一次比较完毕之后,最大值就出现在了最大索引出,继续依次比较,得到一个排好序的数组! 2.数组排序之:选择排序:           用0索引依次和后面的索引进行比较,第一次比较完毕之后,最小值出现在了最小索处!               同理,其他索引也是依次进行比较! 3.数组查找 基本查找:数组元素查表法(查询数组中的元素第一次在数组中出现的索引):从头查到尾                     数组二分查找(折半查找) 思路:   

14.输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字。 要求时间复杂度是O(n)

待完善! 转载请注明出处:http://www.cnblogs.com/wuzetiandaren/p/4259199.html 声明:现大部分文章为寻找问题时在网上相互转载,此博是为自己做个记录记录,方便自己也方便有类似问题的朋友,本文的思想也许有所借鉴,但源码均为本人实现,如有侵权,请发邮件表明文章和原出处地址,我一定在文章中注明.谢谢. 题目: 输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字.要求时间复杂度是O(n).如果有多对数字的和等于输

输入一个已经按升序排序的数组和一个数字 ,在数组中查找两个数,使得他们的和是输入的那个数字

package shuzu; /* * 输入一个已经按升序排序的数组和一个数字 * 在数组中查找两个数,使得他们的和是输入的那个数字,要求时间复杂度为o(n) * 如果有多对数字的和等于输入的数字,输出任意一对即可. */ public class demo1 { private static void findAns(int[] data,int sum) { int size=data.length; int begin =0; int end=size-1; while(begin < s

【编程题目】输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字。

第 14 题(数组):题目:输入一个已经按升序排序过的数组和一个数字,在数组中查找两个数,使得它们的和正好是输入的那个数字.要求时间复杂度是 O(n).如果有多对数字的和等于输入的数字,输出任意一对即可.例如输入数组 1.2.4.7.11.15 和数字 15.由于 4+11=15,因此输出 4 和 11. 要求时间是O(n)肯定就只能扫描一遍. 又有两个数字要找,那就只能一个从头向后找 一个从后向前找 初始把大值设为最后一个数, 小值设为第一个数,如果数字和大于和,则减小大数的数值, 反之增大小

程序员面试题目总结--数组(三)【旋转数组的最小数字、旋转数组中查找指定数、两个排序数组所有元素中间值、数组中重复次数最多的数、数组中出现次数超过一半的数】

转!http://blog.csdn.net/dabusideqiang/article/details/38271661 11.求旋转数组的最小数字 题目:输入一个排好序的数组的一个旋转,输出旋转数组的最小元素. 分析:数组的旋转:把一个数组最开始的若干个元素搬到数组的末尾.例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1.这道题最直观的解法并不难.从头到尾遍历数组一次,就能找出最小的元素,时间复杂度显然是O(N).但这个思路没有利用输入数组

leetcode题解:Search for a Range (已排序数组范围查找)

题目: Given a sorted array of integers, find the starting and ending position of a given target value. Your algorithm's runtime complexity must be in the order of O(log n). If the target is not found in the array, return [-1, -1]. For example,Given [5,

[leetcode] 34. 在排序数组中查找元素的第一个和最后一个位置(Java)

34. 在排序数组中查找元素的第一个和最后一个位置 题目要求用O(logn),明显要用二分. 其实二分不难,难的是要处理好边界 class Solution { public int[] searchRange(int[] nums, int target) { int i = 0, j = nums.length; int mid = (i + j) / 2; int p = -1; while (i < j) { if (nums[mid] == target) { p = mid; bre

在排序数组中查找元素

/* 34.在排序数组中查找元素的第一个和最后一个位置. 给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置. 你的算法时间复杂度必须是 O(log n) 级别. 如果数组中不存在目标值,返回 [-1, -1]. */ #include<stdio.h> #include<malloc.h> #include<string.h> #include<stdlib.h> #include<mat

【LeetCode】34. 在排序数组中查找元素的第一个和最后一个位置

题目 给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置. 你的算法时间复杂度必须是?O(log n) 级别. 如果数组中不存在目标值,返回?[-1, -1]. 示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: [3,4] 示例?2: 输入: nums = [5,7,7,8,8,10], target = 6 输出: [-1,-1] 本题同[剑指Offer]面试题53 - I. 在排序数组