定义数组的方式有几种,定义数组的方式有几种

http://www.itjxue.com  2023-01-14 09:15  来源:未知  点击次数: 

php中数组的定义有几种方法及区别

数组在PHP中包含2种表现,

一种是普通数组,定义方式有二种,

第一:

$a = array("aa","bb","cc")

第二:

$a[] = "aa";

$a[] = "bb"

$a[] = "cc";

一般用数组遍历的方式可以打印出所有数据,也可以使用数组的位标(从0开始计算)自定义打印,比如:

$a[0]的值就是aa,$a[1]的值是"bb"

数组遍历自己搜索下,也是2种方式

另外是别名数组,定义也是2种

第一:

$a = array("aa"= "11","bb"="22")

第二:

$a["aa"] = "11";

$a["bb"] = "22";

使用数组的位标在别名数组就不行了,必须用别名

$a[0]就取不到值了,$a[“aa”]才能取到值"11"

数组遍历其中foreach有点不一样,自己搜索下

创建数组的几种方式

一、数组分类

1.数组是由一组有序的值或键值对组成的数据结构

2.数组根据键名类型分为:索引数组 与 关联数组 二大类

3.索引数组:键名是元素的位置索引,默认从0开始,采用系统自动处理可以省略键名

4.关联数组:键名是自定义的字符串,类似于对象中的属性列表

//索引数组: 采用字面量直接定义

$arts = ['亢龙有悔', '飞龙在天', '见龙在田', '鸿渐于陆', '潜龙勿用', '突如其来'];

//关联数组: 采用字面量直接定义

$swordsman = ['name'='郭靖','position'='金刀驸马','skill'='降龙十八掌'];

二、数组定义

1. 整体定义: $arr = [...]

2. 逐个定义: $arr[] = ...

3. 数组元素可以是字面量,也可以变量,甚至还可以是数组,从而创建多维数组

//逐个定义:以添加的方式的来创建数组

$position = '金刀驸马';

$swordsman=[];

$swordsman['name'] = '郭靖';

$swordsman['position'] = $position;

$swordsman['skill'] = '降龙十八掌';

三、数组遍历

1. for()循环:适合遍历索引数组

2. while()循环

3. foreach()循环: 数组专用,强烈推荐

4. list(),each(),while()配合完成的遍历,因为each()已不再推荐,所以不再学习

4. 内部指针

1. for()循环:

$resl = '';

for($i=0;$icount($arts);$i++)

{

$resl .=$arts[$i].',';

}

echo rtrim($resl,',').'hr'; //去掉最右边留下来的逗号

2. while()循环

$res2 = '';

$i = 0;

while($icount($arts))

{

$res2 .= $arts[$i].'-';

$i++;

}

echo rtrim($res2,'-').'hr';

3. foreach()循环

//3.foreach

foreach ($arts as $key=$value)

{

echo $key.'---'.$value.'br';

}

4.list(),each(),while()遍历

list($var1,$var2,...) = [value1, value2,....]:将索引数组中的值,依次赋给list()中的变量

each($arr):将数组中的每个元素,拆分键和值二部分,并分别以索引和关联二种方式返回

//测试each()

$arr = [100,'name'='DonnieKing'];

$temp = each($arr);

echo 'pre';

print_r($temp);

$temp = each($arr);

echo 'pre';

print_r($temp);

echo 'hr';

while(list($key,$value) = each($swordsman))

{

echo $key.'---'.$value.'br';

}

echo 'hr';

5.内部指针

(1)current():当前指针指向元素的值

(2)key(): 当前指针指向元素的键名/索引

(3)next(): 指针后移

(4)prev(): 指针前移

(5)end(): 指针移到尾部最后一个元素上

(6)reset(): 指针复位,指向第一个元素

//指针复位

reset($arts);

//获取第一个元素的键值

echo key($arts),'---',current($arts),'br';

//后移一位,获取第二个元素的键值

next($arts);

echo key($arts),'---',current($arts),'br';

//前移一位

prev($arts);

echo key($arts),'---',current($arts),'br';

//移到最后,获取最后一个元素的键值

end($arts);

echo key($arts),'---',current($arts),'br';

echo 'hr';

//记得先复位数组指针,从头开始遍历

reset($arts);

for($i=0;$icount($arts);$i++)

{

echo key($arts).'---'.current($arts) .'br';

next($arts); //指针后移一位

}

//使用while循环配置指针进行遍历

echo 'hr';

reset($arts);

//使用入口判断型,会导致第一招丢失

while(next($arts))

{

// prev($arts);

echo key($arts).'---'.current($arts).'br';

}

//应该使用出口判断结构: do ~ while()

echo 'hr';

reset($arts);

do{

echo key($arts).'---'.current($arts).'br';

}while(next($arts)) ;

简述VFP中定义数组的几种方法?

定义数组命令:declare或者dimension命令。

1.dimension命令

dimension ar (10) :

定义一个一维数组ar,该数组有10个元素,数组下标从1开始。

dimension ab[3,2] :

定义一个二维数组ab,该数组有6个元素。

2.declare命令

declare a(3,4):

定义一个二维数组a,该数组有12个元素。

java中数组的定义:

字符串数组:

1、String[] str=new String[5];

2、String[] str=new String[]{"a","b"};

3、String[] str={"a","b"};

整形数组:

1、int[] i=new int[5];

2、int[] i=new int[]{0,1};

3、int[] i={0,1};

C语言数组定义:

一般有四种数组定义方式,以一维数组为例:

//定义指定维数的数组

int arr[10];

//定义不指定维数的数组,数组维数有初化列表元素个数决定。

int arr[] = {1,2,4};

//定义指定维数的数组,初始化不完全时,系统将未初始化元素初始化为0

int arr[10] = {1,2};

//动态分配一个数组。下面分配了一个有10个元素的数组。

int *arr =(int *) malloc(10 * sizeof(int));

c语言数组定义的几种方式

数组的定义

数组就是指用于存储同一类型数据的集合,一个数组实际上就是一连串的变量,数组按照使用可以分为一维数组、二维数组、多维数组

数组定义的方式

数组定义的方式有四种形式,分别是:

(1)类型名[] 数组名;

(2)类型名[] 数组名 = { 初始值列表 };

(3)类型名[] 数组名 = new 类型名[ 数组大小 ];

(4)类型名[] 数组名 = new 类型名[ 数组大小 ] { 初始值列表 };

数据类型:指的是数组元素的数据类型,常见的有整形、浮点型、与字符型等

数组名:是用来统一这组相同数据类型元素的名称,其命名规则和变量的相同

c++中有几种方法定义数组

一、一维数组

静态 int array[100]; 定义了数组array,并未对数组进行初始化

静态?int array[100] = {1,2};定义并初始化了数组array

动态?int* array = new int[100]; ?delete []array;分配了长度为100的数组array

动态?int* array = new int[100](1,2);? delete []array; 为长度为100的数组array初始化前两元素

二、二维数组

静态 int array[10][10];定义了数组,并未初始化

静态 int array[10][10] = { {1,1} , {2,2} };数组初始化了array[0][0,1]及array[1][0,1]

动态 int (*array)[n] = new int[m][n]; delete []array;

动态 int** array = new int*[m]; for(i) array[i] = new int[n]; ?for(i) delete []array[i]; delete []array; ? ?多次析构

动态 int* array = new int[m][n]; ?delete []array; ? ? ?数组按行存储

三、多维数组

int* array = new int[m][3][4]; ? ?只有第一维可以是变量,其他维数必须是常量,否则会报错

delete []array; ? ? ? 必须进行内存释放,否则内存将泄漏

四、数组作为函数形参传递

一维数组传递:

void func(int** array);

void func(int (*array)[n]); 

二维数组传递: 

void func(int* array);

void func(int array[]);

数组名作为函数形参时,在函数体内,其失去了本身的内涵,仅仅只是一个指针,而且在其失去其内涵的同时,它还失去了其常量特性,可以作自增、自减等操作,可以被修改。

五、字符数组

char类型的数组被常委字符数组,在字符数组中最后一位为转移字符'\0'(也被成为空字符),该字符表示字符串已结束。在C++中定义了string类,在Visual C++中定义了Cstring类。

字符串中每一个字符占用一个字节,再加上最后一个空字符。如:

char array[10] = "cnblogs";

虽然只有7个字节,但是字符串长度为8个字节。

也可以不用定义字符串长度,如:char array[] = "cnblogs";

(责任编辑:IT教学网)

更多

推荐FTP服务器文章