好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php中数值数组、关联数组、多维数组用法 - php数

php中数值数组、关联数组、多维数组用法

在php中用三种数组分别是数值数组,关联数组,多维数组那么它们三种的用法有一点不同,下面我们来看看吧.

数值数组: 数值数组存储的每个元素都带有一个数字 ID 键,可以使用不同的方法来创建数值数组.

例子1,在这个例子中,会自动分配 ID 键,代码如下:

$names = array("Peter","Quagmire","Joe");

例子 2,在这个例子中,我们人工分配的 ID 键,代码如下:

$names [0] =  "Peter" ;  $names [1] =  "Quagmire" ;  $names [2] =  "Joe" ;可以在脚本中使用这些 ID 键:  <?php  $names [0] =  "Peter" ;  $names [1] =  "Quagmire" ;  $names [2] =  "Joe" ;  echo   $names [1] .  " and "  .  $names [2] .  " are " .  $names [0] .  "'s neighbors" ;  ?> 

数组排序

(1)sort(array $array[,int sorttype]) 

array 表示一个数组 

sorttype 取值:SORT_REGULAR - 默认,以它们原来的类型进行处理(不改变类型),SORT_NUMERIC - 把值作为数字来处理,SORT_STRING - 把值作为字符串来处理 ,SORT_LOCALE_STRING - 把值作为字符串来处理,基于本地设置.

(2)bool rsort(array $array[,sorttype])函数,逆向排序(值逆向),sorttype  同上 

(3)bool shuffle()函数,随机排序 

(4)array array_reverse (array $array[,bool preserve_keys])  反向排列,preserve_keys 为true时 保留原来的键名 

(5)array array_merge()合并数组 

(6)array array_slice(array $array,int offset[,int length[,boolpreserve_keys ])

offset非负,这array中的偏移变量从此开始,为负时从末端开始,length为正时,则表示序列中有很多单元,为负时表示从末端开始第几个数处结束,若省略则从offset开始一直到最后,boolpreserve_keys  同上.

数组循环输出, 代码如下:

<?php  $shuzu = array ( 'a' => "wo" , 'b' => "ni" , 'c' => "ta" , 'd' => "php" , 'e' => "mysql" );  echo   "使用foreach函数遍历数组" ;  echo   "<br/>$nbsp;<br/>" ;  foreach ( $shuzu   as   $key => $value )  {  echo   "$key 代表: $value" ;  echo   "<br/>$nbsp;<br/>" ;  }  ?> 

关联数组

关联数组,它的每个 ID 键都关联一个值,在存储有关具体命名的值的数据时,使用数值数组不是最好的做法,通过关联数组,我们可以把值作为键,并向它们赋值.

例子1,在本例中,我们使用一个数组把年龄分配给不同的人,代码如下:

$ages = array("Peter"=>32, "Quagmire"=>30, "Joe"=>34); 

例子 2,本例与例子 1 相同,不过展示了另一种创建数组的方法,代码如下:

$ages [ 'Peter' ] =  "32" ;  $ages [ 'Quagmire' ] =  "30" ;  $ages [ 'Joe' ] =  "34" ;可以在脚本中使用 ID 键:  <?php  $ages [ 'Peter' ] =  "32" ;  $ages [ 'Quagmire' ] =  "30" ;  $ages [ 'Joe' ] =  "34" ;  echo   "Peter is "  .  $ages [ 'Peter' ] .  " years old." ;  ?>  //以上脚本的输出:   //Peter is 32 years old.  

关联数组判断为空的代码,然后我们详细讲讲关于数据空的处理,代码如下:

<?php       $array  =  array (0);       if ( empty empty ( $array )){           echo   "我空了n" ;      } else {           echo   "我不空啊n" ;      }       $array [ 'array' ]= '我是数组' ;      print_r( $array );       $array [ 'array1' ]= '我是数组1' ;      print_r( $array );      unset( $array [ 'array1' ]);      print_r( $array );  ?> 

遍历:遍历用户列表的时候,只需直接用 isset 查询那个用户名是否存在即可,PHP 版代码如下:

<?php  $arrayHash  =  array ();  foreach ( $arrayN   as   $nameN ) {      // 本行执行了 N 次。       $arrayHash [ $nameN ] = 1;  }  foreach ( $arrayM   as   $keyM  =>  $nameM ) {      if  (isset( $arrayHash [ $nameM ])) {      // 本行执行了 M 次!      unset( $arrayM [ $keyM ]);     }  }  return   $arrayM ;  ?> 

多维数组: 在多维数组中,主数组中的每个元素也是一个数组,在子数组中的每个元素也可以是数组,以此类推.

例子 1,在本例中,我们创建了一个带有自动分配的 ID 键的多维数组,代码如下:

$families  =  array   (     "Griffin" => array     (     "Peter" ,     "Lois" ,     "Megan"     ),     "Quagmire" => array     (     "Glenn"     ),     "Brown" => array     (     "Cleveland" ,     "Loretta" ,     "Junior"     )  );  /*   如果输出这个数组的话,应该类似这样:   Array   (   [Griffin] => Array     (     [0] => Peter     [1] => Lois     [2] => Megan     )   [Quagmire] => Array     (     [0] => Glenn     )   [Brown] => Array     (     [0] => Cleveland     [1] => Loretta     [2] => Junior     )   )*/  

例子 2,让我们试着显示上面的数组中的一个单一的值,代码如下:

echo   "Is "  .  $families [ 'Griffin' ][2] .   " a part of the Griffin family?" ;  //以上代码的输出:   //Is Megan a part of the Griffin family?   

数组排序,代码如下:

<?php   $array [] =  array ( "age" =>20, "name" => "li" );  $array [] =  array ( "age" =>21, "name" => "ai" );  $array [] =  array ( "age" =>20, "name" => "ci" );  $array [] =  array ( "age" =>22, "name" => "di" );  foreach  ( $array   as   $key => $value ){    $age [ $key ] =  $value [ 'age' ];    $name [ $key ] =  $value [ 'name' ];  }  array_multisort ( $age ,SORT_NUMERIC,SORT_DESC, $name ,SORT_STRING,SORT_ASC, $array );  print_r( $array );  ?> 

查看更多关于php中数值数组、关联数组、多维数组用法 - php数的详细内容...

  阅读:39次