PHP学习笔记九【数组二】

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html>
<meta charset="utf-8" /> <!--指定页面编码方式--->

<?php
 $arr[0]=1;
 $arr[1]="hello world";
 $arr[2]=true;
 $arr[3]=45.45;
 //php 数组的值可以是任意类型的
  for( $i=0;$i<count($arr);$i++)
  {
   echo "<br/>".$arr[$i];

  }

  //数组的第二种方式
  echo ‘<br/>创建数组的第二种方式‘;
  $arr1=array(1,"hello world",23.4,false);
  for($j=0;$j<count($arr1);$j++)
  {
    echo "<br>".$arr1[$j];
  }

  //数组的第三种方式可以指定key,默认情况下key是0
  $arr2["test1"]="hello";
  $arr2["test2"]="world";
  $arr2["num"]="34";
  for($z=0;$z<count($arr2);$z++)
  {
    echo "<br/>".$arr2[$z]; //自己指定key的时候无法使用这种方式遍历,只能用foreach便利
  }
  echo "<br/>无法使用for进行遍历,只能使用foreach";
  //foreach 使用范文更广泛
  foreach($arr2 as $val)
  {
   echo "<br/>".$val;
  }

  echo "<br/>"."输出key";
  foreach($arr2 as $key=>$val)
  {
   echo "<br/>".$key."=".$val."<br/>";
  }

  //*********************
  $arr3[true]="hello "; //如果用true作为key那么要用1来访问 $arr3[1]
  $arr3[false]="world"; //如果用false作为key 那么用0来访问 $arr3[0]
  $arr3[null]="北京"; //如果用null作为key 可以用null和“”来访问$arr3[null] 或者 $arr3[""];
  echo "<br/>访问true,false,null 为key的数组";
  echo $arr3[null];
  echo $arr3[""];
 //*********************
  $arr4[123.4]="hello world";
  echo "<br/>".$arr4[123.4];
   echo "<br/>".$arr4[123];
   echo "<br/>";
   print_r($arr4); //print_r输出数组信息
    echo "<br/>";
   var_dump($arr4);// var_dump可以更加详细的输出数组信息
   //*********************
   echo "<br/>PHP的数组是可以动态增长的";
   $arr5=array(2,3);
   $arr5[2]="hello world";
   $arr5[5]="beijing";  //这样数组不会报错,只是3,4没有用到而已,但是不能通过$arr5[3]去访问
   foreach($arr5 as $val)
   {
    echo "<br/>".$val;
   }
  //********************判断是否是一个数组
  echo "<br/>";
  $arr6=array(23,56);
  $b=4;
  echo is_array($arr6);
  echo "<br/>".is_array($b);

  //********************拆分字符串explode返回数组
  $str="北京&顺平&天津&宋江";
  $arr7=explode("&",$str);
 echo "<br/>".var_dump($arr7)."元素有".count($arr7);

 //例子
  echo "<br/>";
 $colors=array("red","blue","green","yellow");
 for($i=0;$i<count($colors);$i++)
 {
    echo "<br/>".$colors[$i];
 }
 //用while遍历
 $i=0;//循环控制变量
   while($i<count($colors))
    {
        echo "<br/>".$colors[$i];
        $i++;
    }

 //do while
 $i=0;
do{
   echo "<br/>".$colors[$i];
   $i++;
 }while($i<count($colors));

 //foreach 遍历
 foreach($colors as $key=>$val)
 {
   echo "<br>".$key."=".$val;
 }
 //**********unset释放一个变量,使用了该方法表示把元素彻底删除

 $arr8[0]=123;
 $arr8[1]=345;
 $arr8[2]="hello world";
 unset($arr8[1]);
 foreach($arr8 as $val)
 {
   echo "<br/>".$val;
 }

 //如果我们创建一个数组的时候,没有给某个元素指定下标,
 //那么php就会以当前最大的那个下标值加1作为该元素的下标
 echo "<br/>";
 $arr=array(5=>"logo",567,90);
 $arr[5]="yes";//修改数组元素的值,可以直接通过索引来修改
 echo $arr[5];
 echo "<br/>".$arr[6];
 echo "<br/>".$arr[7];

 //数组陷阱
 $arr[bar]="hello world";  //不加引号就相当于bar是个常量,这样用可能会出现致命错误
 echo "<br/>".$arr[bar];
 //数组运算符+表示联合两个元素(会把右边的相同的键去除)
 $a=array("a"=>"apple","b"=>"bannana");
 $b=array("a"=>"pear","b"=>"strawberry","c"=>"cherry");
 $c=$a+$b;
 echo "\$a+\$b result <br/>";

 var_dump($c);
 $c=$b+$a;
 echo "\$b+\$a result <br/>";

 var_dump($c);
?>
</html>
时间: 2024-10-03 13:10:03

PHP学习笔记九【数组二】的相关文章

《Javascript权威指南》学习笔记之十二:数组、多维数组和符合数组(哈希映射)

Array(数组)是JavaScript中较为复杂的数据类型,同Java.C#.VB等程序语言的数组相比,Javascript数组中的元素不必为相同的数据类型,可以在数组每个元素上混合使用数字.日期.字符串.Object,甚至添加一个嵌套数组. 一.创建数组 1.var arr1 = new Array(); /var  arr2 = new Array(length); /var arr3 = new Array(element1,element2...); var arr4 = [eleme

java之jvm学习笔记六-十二(实践写自己的安全管理器)(jar包的代码认证和签名) (实践对jar包的代码签名) (策略文件)(策略和保护域) (访问控制器) (访问控制器的栈校验机制) (jvm基本结构)

java之jvm学习笔记六(实践写自己的安全管理器) 安全管理器SecurityManager里设计的内容实在是非常的庞大,它的核心方法就是checkPerssiom这个方法里又调用 AccessController的checkPerssiom方法,访问控制器AccessController的栈检查机制又遍历整个 PerssiomCollection来判断具体拥有什么权限一旦发现栈中一个权限不允许的时候抛出异常否则简单的返回,这个过程实际上比我的描述要复杂 得多,这里我只是简单的一句带过,因为这

【Unity 3D】学习笔记四十二:粒子特效

粒子特效 粒子特效的原理是将若干粒子无规则的组合在一起,来模拟火焰,爆炸,水滴,雾气等效果.要使用粒子特效首先要创建,在hierarchy视图中点击create--particle system即可 粒子发射器 粒子发射器是用于设定粒子的发射属性,比如说粒子的大小,数量和速度等.在创建完粒子对象后,在右侧inspector视图中便可以看到所有的粒子属性: emit:是否是使用粒子发射器. min size:粒子最小尺寸. max size:粒子最大尺寸. min energy:粒子的最小生命周期

angular学习笔记(九)-css类和样式2

在上一个例子中,元素的类名使用拼接的方法,这样,类名中就不得不带有true或false,并且不易维护,所以,angular使用ng-class属性来控制元素的类名: 我们来看一个小例子,点击error按钮,顶部提示错误框,点击warning按钮,顶部提示警告框. 错误框的类名是.err,警告框的类名是.warn: <!DOCTYPE html> <html ng-app> <head> <title>6.2css类和样式</title> <

Linux System Programming 学习笔记(九) 内存管理

1. 进程地址空间 Linux中,进程并不是直接操作物理内存地址,而是每个进程关联一个虚拟地址空间 内存页是memory management unit (MMU) 可以管理的最小地址单元 机器的体系结构决定了内存页大小,32位系统通常是 4KB, 64位系统通常是 8KB 内存页分为 valid or invalid: A valid page is associated with an actual page of data,例如RAM或者磁盘上的文件 An invalid page is

初探swift语言的学习笔记九(OC与Swift混编)

swift 语言出来后,可能新的项目直接使用swift来开发,但可能在过程中会遇到一些情况,某些已用OC写好的类或封装好的模块,不想再在swift 中再写一次,哪就使用混编.这个在IOS8中是允许的. 先中简单的入手,先研究在同一个工程目录下混合使用的情况. 为了演示.先准备两个类 第一个是swift语言写的类,文件名为 act.swift import Foundation class Act : NSObject { func hasAct(tag:Int) -> String { swit

SaltStack 学习笔记 - 第十二篇: SaltStack Web 界面

SaltStack 有自身的用python开发的web界面halite,好处是基于python,可以跟salt的api无缝配合,确定就比较明显,需要个性化对web界面进行定制的会比较麻烦,如果喜欢体验该界面的可以参考下面的文章  http://rfyiamcool.blog.51cto.com/1030776/1275443/ 我是运用另一个python+php来进行web开发,具体需要的工具有在我的另一篇文章里面介绍过,这里再重新进行整个开发介绍 首先介绍php 跟python通信的工具 pp

APUE 学习笔记(九) 高级I/O

1. 非阻塞I/O 低速系统调用时可能会使进程永远阻塞的一类系统调用,包括以下调用: (1)某些文件类型你(网络socket套接字.终端设备.管道)暂无可使用数据,则读操作可能会使调用者永远阻塞 (2)如果数据不能立即被(1)中文件类型接受,则写操作会使调用者永远阻塞 (3)某些进程间通信函数 非阻塞I/O使我们可以调用open.read.write这样的I/O操作,并使这些操作不会永远阻塞,如果这种操作不能完成,则调用立即出错返回 对于一个给定的文件有两种方法对其指定非阻塞I/O: (1)调用

马哥学习笔记三十二——计算机及操作系统原理

缓存方式: 直接映射 N路关联 缓存策略: write through:通写 write back:回写 进程类别: 交互式进程(IO密集型) 批处理进程(CPU密集型) 实时进程(Real-time) CPU: 时间片长,优先级低IO:时间片短,优先级高 Linux优先级:priority 实时优先级: 1-99,数字越小,优先级越低 静态优先级:100-139,数据越小,优先级越高 实时优先级比静态优先级高 nice值:调整静态优先级   -20,19:100,139   0:120 ps

C和指针 学习笔记-3.数组与指针

数据名代表首地址 指向数组的指针 #include <stdio.h> extern void iterate(int *p); void main(){ int a[]={1,2,3,4,5}; iterate(a); } void iterate(int *p){ int i; for(i=0;i<5;i++){ printf("%d",*p++); } } 指向一维数组的指针 int (*p)[3] #include <stdio.h> void i