当前位置:编程学习 > 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 表示一个数组
 <TABLE class=dataintable><TBODY><TR><TD>      sorttype 取值:</TD><TD><P>           SORT_REGULAR - 默认。以它们原来的类型进行处理(不改变类型)。 </P><P>           SORT_NUMERIC - 把值作为数字来处理 </P><P>           SORT_STRING - 把值作为字符串来处理 </P><P>            SORT_LOCALE_STRING - 把值作为字符串来处理,基于本地设置<SUP style="FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif">*</SUP>。 </P></TD></TR></TBODY></TABLE>
 (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  同上

数组循环输出

 代码如下 复制代码
<PRE class="brush:php; toolbar: true; auto-links: true;"><pre>
<?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/>";
}
?>
</pre></PRE>

 

关联数组

关联数组,它的每个 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($array)){
        echo "我空了n";
    }else{
        echo "我不空啊n";
    }
    $array['array']='我是数组';
    print_r($array);
    $array['array1']='我是数组1';
    print_r($array);
    unset($array['array1']);
    print_r($array);
?>

更多详细内容请查看:http://www.zzzyk.com/phper/php/39841.htm

遍历

遍历用户列表的时候,只需直接用 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);
?>

更多array_multisort()可参考http://www.zzzyk.com/phper/php/42696.htm

补充:Php教程,Php常用代码 
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,