`
sibyl_pisces
  • 浏览: 146998 次
  • 性别: Icon_minigender_2
  • 来自: 青岛
社区版块
存档分类
最新评论

php数组 多维数组

    博客分类:
  • PHP
阅读更多

关于数组: 

PHP中的数组是复杂的,并且比许多其他高级语言中的数组更灵活。 
数组array是一组有序的变量,其中每个变量被叫做一个元素。 

数组可以被编号或者相关联,也就是数组的元素可以分别根据数字索引或文本化字符串来访问PHP中,数组可以包含标量(整数,布尔,字符串,浮点数)或复合值(对象甚至其他数组),并且可以包含不同类型的值 

1。创建数组 

PHP提供创建数组的array()语言结构 
$numbers = array(5,4,3,2,1); 
$words = array("web","database","application"); 
echo $numbers[2]; 
echo $words[0]; 
---------------------输出结果---------------------------------------- 

3web 

--------------------------------------------------------------------- 

默认情况下,数组的第一个元素的索引为0。数组中包含的值可以通过使用方括号[]语法来检索和修改 

$numbers[5] = 0; 

数字化索引的数组可以创建位从任何索引值开始 

$numbers = array(1=>"one","two","three","four"); 

也可以松散的索引 

$numbers = array(1=>"one",3=>"three",5=>"zero"); 

可以通过给变量赋予一个没有参数的array()来创建空数组。然后可以通过使用方括号[]语法来添加值 

$error = array(); 
$error[] = "no error!!!"; 
$error[] = "second error!!!"; 
echo $error[0]; 
echo $error[1]; 

---------------------输出结果---------------------------------------- 

no error!!!second error!!! 

--------------------------------------------------------------------- 

2.关联数组 

关联数组(associative array)使用字符串索引(或键)来访问存储在数组中的值 
关联索引的数组对于数据库层交互非常有用 

$newarray = array("first"=>1,"second"=>2,"third"=>3); 
echo $newarray["second"]; 
$newarray["third"]=5; 
echo $newarray["third"]; 

---------------------输出结果---------------------------------------- 

25 

--------------------------------------------------------------------- 

3.异构数组 

PHP数组可以包含不同种类的值 

$mixedBag = array("cat",42,8.5,false); 
var_dump(mixedBag); 

4.多维数组 

创建包含数组的数组,数组维数没有限制,但是一般很难想象一个多于三维的数组的用法 

$planets = array(array("MM",1,2),array("NN",3,4),array("BB",5,6),array("VV",7,8)); 
print $planets[2][0]; 
$planets2 = array("MM"=>array("AA"=>1,"SS"=>2), 
"NN"=>array("DD"=>3,"FF"=>4), 
"BB"=>array("GG"=>6,"HH"=>7,"PP"=>array("haha!!!!")), 
"VV"=>array("JJ"=>6,"KK"=>7,"LL"=>array("one","two"))); 
print $planets2["VV"]["LL"][0]; 

---------------------输出结果---------------------------------------- 

BBone 

--------------------------------------------------------------------- 

5.使用循环访问数组 

遍历数组的方法有很多(使用while,for循环)或者foreach语句,最容易的是foreach 语句 

$length = array(0,107,202,400,475); 
//将厘米转换为寸 
for($i=0;$i<5;$i++) 

echo ($length[$i]/3); 

$j=0; 
while(isset($length[$j])) 

echo ($length[$j]/3); 
$j++; 


foreach($length as $cm) 

echo ($cm/3); 


---------------------输出结果---------------------------------------- 


35.6666666667 
67.3333333333 
133.333333333 
158.333333333 


35.6666666667 
67.3333333333 
133.333333333 
158.333333333 

35.6666666667 
67.3333333333 
133.333333333 
158.333333333 

--------------------------------------------------------------------- 

foreach还可以迭代关联数组的值 

$sound = array("cow"=>"moo","dog"=>"woof", 
"pig"=>"oink","duck"=>"quack"); 
foreach ($sound as $animal=>$noice) 

echo "$animal 得叫声是这样的 $noice $noice......"; 


---------------------输出结果---------------------------------------- 

cow 的叫声是这样的 moo moo...... 
dog 的叫声是这样的 woof woof...... 
pig 的叫声是这样的 oink oink...... 
duck 的叫声是这样的 quack quack...... 

--------------------------------------------------------------------- 

6.使用数组指针 

与存储在数组中的键和关联值一起,PHP还拥有一个指向数组当前元素的内部索引, 
有几个函数使用并更新该数组索引来提供对数组元素的访问 

$a = array("a","b","c","d","e","f"); 
echo current($a); 
each($a); 
key($a);//目前数组的指针,返回其索引 
echo current($a);//当前元素的值 
each($a);//返回当前元素的值并将内部索引指向下一个元素 
each($a); 
echo current($a); 
next($a);//指向下一个元素 
echo current($a); 
prev($a);//指向上一个元素 
echo current($a); 
end($a);//指向最后一个元素 
echo current($a); 
key($a); 
echo current($a); 

---------------------输出结果---------------------------------------- 

abdedff 

--------------------------------------------------------------------- 

7.基本的数组函数 

integer count(mixed var)//在数组中返回元素的个数,也可用于任何的变量 
number max(array numbers)//返回数组中的最大值 
number min(array numbers)//返回数组中的最小值 
boolean in_array(mixed needle,array haystack[,bollean strict])//查找数组中的值,第三个参数可选,强制执行类型检查 
mixed array_search(mixed needle,array haystack[,boolean strict])//返回 键 而不是布尔值, 
找不到时返回false,找到的元素如果正好是第一个元素,则返回0,而PHP会自动转化为false所以需要使用===判断,如下 

$a = array("a","b","c","d","e","f"); 
$index = array_search("a",$a); 
if($index === false) 
echo "在数组a中未发现字符a"; 
else 
echo "Index = $index"; 

---------------------输出结果---------------------------------------- 

Index = 0 

--------------------------------------------------------------------- 

array array_reverse(array source[,bool preserve_keys])//逆转数组,生成一个新数组,可选参数为true时,保留索引和元素之间的关联 
$a = array("a","b","c","d","e","f"); 
$newa = array_reverse($a);//直接翻转 
echo $newa[0]; 
$newb = array_reverse($a,true);//依旧保留了索引和元素之间的关联 
echo $newb[0]; 

---------------------输出结果---------------------------------------- 

fa 

--------------------------------------------------------------------- 

sort(array subject[,integer sort_flag])//根据 值 进行升序排列(在原数组中重新排列元素) 
rsort(array subject[,integer sort_flag])//根据 值 进行降序排列(在原数组中重新排列元素) 
可选参数可以指定为按数字方式SORT_NUMERIC还是字符串方式SORT_STRING或者通常的方式SORT_REGULAR排序 
sort()、rsort()可以用于关联数组,但是 键 将丢失 
asort(array subject[,integer sort_flag])//根据 值 进行升序排列(在原数组中重新排列元素),保持键值关联 
arsort(array subject[,integer sort_flag])//根据 值 进行降序排列(在原数组中重新排列元素),保持键值关联
当asort() arsort()用于非关联数组时,元素按排序后的次序重新排列,但是访问元素的索引不改变 
integer ksort(ayyay subject [,integer sort_flag])//根据 键或索引 进行升序排列 
integer krsort(ayyay subject [,integer sort_flag])//根据 键或索引 进行降序排列 
usort(array subject, string compare_function)//根据用户定义排序,用户定义自己的排序规则函数,但函数必须符合 
uasort(array subject, string compare_function)//integer my_compare_function(mixed a, mixed b),a>b返回1,a uksort(array subject, string compare_function)//a等于b时返回0 
$numbers = array(16,3,2,171,5,24,6,19); 
sort($numbers); 
foreach($numbers as $n) 
echo $n." "; 
$numbers = array(16,3,2,171,5,24,6,19); 
rsort($numbers); 
foreach($numbers as $n) 
echo $n." "; 
$numbers = array(16,3,2,171,5,24,6,19); 
sort($numbers,SORT_STRING); 
foreach($numbers as $n) 
echo $n." "; 
$a = array("o"=>"kk","e"=>"zz","z"=>"hh","a"=>"rr"); 
asort($a); 
foreach ($a as $keyname=>$keyvalue) 
echo $keyvalue; 
$a = array("o"=>"kk","e"=>"zz","z"=>"hh","a"=>"rr"); 
ksort($a); 
foreach ($a as $keyname=>$keyvalue) 
echo $keyvalue; 
//基于长度比较两个字符串 
function cmp_length($a,$b) 

if(strlen($a) < strlen($b)) 
return -1; 
if(strlen($a) > strlen($b)) 
return 1; 
return 0; 

$animals = array("cow","ox","monkey","mimi"); 
usort($animals,"cmp_length"); 
foreach($animals as $an) 
echo $an; 

---------------------输出结果---------------------------------------- 

2 3 5 6 16 19 24 171 171 24 19 16 6 5 3 2 16 171 19 2 24 3 5 6 hhkkrrzzrrzzkkhhoxcowmimimonkey 

--------------------------------------------------------------------- 

array_merge($a,$b)//组合数组,个人认为是比较有趣的函数之一,从两个数组生成一个数组,具有相同 键 的值会被覆盖 
////////////////////////////代码部分//////////////////////////////////////// 

$a = array("name"=>"zhangsan",10,100); 
$b = array("name"=>"lisi",4,6,8); 
$c = array_merge($a,$b); 
var_dump($c); 

////////////////////////////////////////////////////////////////////////// 

---------------------输出结果---------------------------------------- 

array(6) { ["name"]=> string(4) "lisi" [0]=> int(10) [1]=> int(100) [2]=> int(4) [3]=> int(6) [4]=> int(8) } 

--------------------------------------------------------------------- 

array array_combine(array $a,array $b)//a数组的值为新数组的键,b数组的值为新数组的值,数组长度不同时,返回false 

////////////////////////////代码部分//////////////////////////////////////// 

$a = array("name","math","china"); 
$b = array("zhangsan",4,6); 
$c = array_combine($a,$b); 
var_dump($c); 

////////////////////////////////////////////////////////////////////////// 

---------------------输出结果---------------------------------------- 

array(3) { ["name"]=> string(8) "zhangsan" ["math"]=> int(4) ["china"]=> int(6) } 

 

 

http://www.myzqu.com/zhaoqing/doc-view-7.html

分享到:
评论

相关推荐

    php 多维数组排序

    php 多维数组排序,应用php的多维数组排序函数

    PHP多维数组转字符串函数

    ### PHP多维数组转字符串函数 #### 概述 在PHP开发过程中,处理数组是非常常见的需求之一。有时候,我们可能需要将多维数组转换为字符串形式,以便于存储、传输或者进行其他操作。本文将详细介绍一个来自PLFrame ...

    nusoap 创建多维数组

    然后,WebserviceStudio20会发送这个请求到我们的Web服务,nusoap库会自动将XML数据反序列化为PHP数组,这样我们就可以在Web服务端处理多维数组了。 在返回结果时,同样需要将处理后的多维数组序列化为XML或JSON...

    php随机生成一个多维数组

    php随机生成一个多维数组

    php数组生成树

    总结一下,PHP数组生成树的核心在于理解如何利用递归函数和关联数组来构建层次结构。通过将扁平化的一维数组转换为多维树结构,我们可以更好地管理和操作具有层级关系的数据。这个无限递归子类的源代码示例展示了...

    php打乱数组二维数组多维数组的简单实例

    标准的PHP函数shuffle()能够很好地打乱一维数组,但当遇到二维数组或多维数组时,该函数就力不从心了。本篇文章将为大家介绍如何简单地实现二维数组或多维数组的打乱操作。 首先,让我们看看一个二维数组的结构。在...

    php 多维数组的排序

    php 多维数组的排序php 多维数组的排序

    PHP 多维数组详解.md

    ### PHP 多维数组详解 #### 一、PHP多维数组概述 在 PHP 中,多维数组是一个重要的数据结构概念,它允许开发者构建更为复杂的数组结构来存储多种类型的数据。多维数组的一个典型应用场景是在数据库查询结果的处理...

    php数组操作函数

    array_change_key_case -- 返回...array_multisort -- 对多个数组或多维数组进行排序 array_pad -- 用值将数组填补到指定长度 array_pop -- 将数组最后一个单元弹出(出栈) array_product -- 计算数组中所有值的乘积

    多维数组让数组根据某个字段的大小排序

    #### 二、PHP中多维数组排序的实现方法 本例中,我们希望对一个多维数组按照其中一个字段(本例为`'norder'`)的值进行降序排序。具体步骤如下: 1. **初始化数组**: ```php $arr = array( array('name' =&gt; '...

    php多维数组转化为一维数组并重组源码

    在PHP开发过程中,处理数组是一项常见的任务,尤其是当数据结构变得复杂时,如多维数组。多维数组是由一个或多个数组嵌套形成的数组,它能够存储大量的层次化数据。然而,有时候我们需要将这些复杂的多维数组转换为...

    php多维数组合并类库

    在PHP编程中,多维数组是一种非常常见的数据结构,它由多个数组组成,每个数组又可以包含其他数组,形成层次化的数据存储。处理多维数组时,有时我们需要将其合并,以便于数据分析、处理或展示。这里我们将深入探讨...

    PHP 数组的介绍

    - **多维数组**:数组的元素本身也是数组,形成嵌套结构,如`$mixedArray`中的子数组。 **3. 数组操作** PHP提供了丰富的函数来操作数组,例如: - `count()`:计算数组元素个数。 - `array_push()`:在数组末尾...

    PHP实现的多维数组去重操作示例

    本文实例讲述了PHP实现的多维数组去重操作。分享给大家供大家参考,具体如下: 最近用到了一个获取历史会议列表的问题,需要去这个多维数组去重后返回返回给客户端,这里使用了几个php的组装函数,分享下,示例代码...

    php省市区三维数组文件

    通过读取excel文件获取的一个php三维数组文件

    php判断是几维数组

    php判断一个数组是几维数组,一维二维多维一一判断

    php数组学习之一

    在“源码”和“工具”的标签中,我们可以理解这篇博文可能不仅讲解了基本的数组操作,还涉及了一些高级用法或自定义函数的实现,比如遍历多维数组、数组排序(`sort()`、`rsort()`、`asort()`、`arsort()`等)、数组...

    PHP 数组的常用函数

    还可以使用`array_map()`对数组的每个元素应用回调函数,`array_filter()`过滤数组中的元素,`array_reduce()`将数组简化为单个值,`array_column()`从多维数组中提取一列。 了解和熟练掌握这些PHP数组函数,将使你...

    关于多维数组转化为一维没有重复元素的php代码

    根据给定的信息,本文将详细解释如何在PHP中将多维数组转换为一维数组,并且去除其中的重复元素。 ### 1. 多维数组转换为一维数组 首先,我们来理解一下多维数组转一维数组的概念。多维数组是指数组中的元素还可以...

Global site tag (gtag.js) - Google Analytics