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数的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did31164