您好,欢迎访问一九零五行业门户网

数组的键/值操作函数,数组函数_PHP教程

数组的键/值操作函数,数组函数ph在p中,数组的每个元素都是由键/值组成的,通过元素的键来访问对应的键的值。“关联数组”指的是键名为字符串的数组,“索引”和“键名”指的是同一样东西。“索引”多指数组的数字形式的下标。使用数组的处理函数,可以很方便地对数组中的每个元素的键和值进行操作,进而生成一个新数组。
①函数array_values()
array_values()函数的作用是返回数组中所有元素的值。使用非常容易,只有一个必选参数,规定传入给定的数组,返回一个包含给定数组中所有值得数组。但不保留键名,被返回的数组将使用顺序的数值键重新建立索引,从0开始并且以1递增。适合用于数组中元素下表混乱的数组,或者可以将关联数组转化为索引数组。代码如下所示:
1234567891011121314 1,姓名 => 高某,公司 => a公司,地址 => 北京市,电话 => (010)98765432); //array_values()函数传入数组$contact 重新索引返回一个新数组 print_r(array_values($contact));print_r($contact); //原数组$contact内容元素不变?>
该程序运行后的结果如下所示:
array([0]=>1 [1]=>高某 [2]=>a公司 [3]=>北京市 [4]=>(010)98765432)
array([id]=>1 [姓名]=>高某 [公司]=>a公司 [地址]=> 北京市 [电话]=>(010)98765432)
②函数array_keys()
array_keys()函数的作用是返回数组中所有的键名。本函数中有一个必须参数和两个可选参数,其函数的原型如下:
array array_keys(array input[,mixed search_value[,bool strict]])
如果指定了可选参数search_value,则只返回指定该值得键名,否则input数组中的所有键名都会被返回。自php5起,可以用strict参数来进行全等比较。需要传入一个布尔型的值,false为默认值不依赖类型。如果传入true值则根据类型返回带有指定值得键名。函数array_keys()使用的代码如下所示:
123456789101112 linux,b=>apache,c=>mysql,d=>php);print_r(array_keys($lamp)); //输出array([0]=>a [1]=>b [2]=>c)print_r(array_keys($lamp,apache)); //使用第二个可选参数输出:array([0]=>b) $a = array(10,20,30,10); //声明一个数组,其中元素的值有整数10和字符串10print_r(array_keys($a,10,false)); //使用第三个参数(false)输出:array([0]=>0 [1]=>3) $a = array(10,20,30,10); //声明一个数组,其中元素的值有整数10和字符串10print_r(array_keys($a,10,true)); //使用第三个参数(true)输出:array([0]=>3) ?>
③函数in_array()
in_array()函数的作用是检查数组中是否存在某个值,即在数组中搜索给定的值。本函数中有三个参数,前两个参数为必须的,最后一个参数为可选的。其函数的原型如下:
bool in_array(mixed needle,array haystack[,bool strict])
第一个参数needle为规定要在数组中搜索的值,第二个参数haystack是规定要被搜索的数组,如果给定的值needle存在于数组haystack中则返回true。如果第三个参数设置为true,函数只有在元素存在于数组中且数据类型于给定值相同时才返回true。如果没有在数组中找到参数,函数返回false。要注意如果needle参数是字符串,且strict参数设置为true,则搜索区分大小写。函数array_keys()使用的代码如下所示:
1234567891011121314151617181920212223242526272829303132333435
也可以使用array_search()函数进行检索。该函数与in_array()的参数相同,搜索给定的值,存在则返回相应的键名,也支持对数据类型的严格判断。函数array_search()使用的代码如下所示:
1234567 linux,b=>apache,c=>mysql,d=>php);    echo array_search(php,$lamp);         //输出:d(在数组$lamp中,存在字符串php则输出下标d)     $a = array(a=>8,b=>8,c=>8);    echo array_search(8,$a,ture);           //输出b(严格按类型检索,整型8对应的下标b)?>
此外,使用array_key_exists()函数还可以检查给定的键名或索引是否存在于数组中。因为在一个数组中键名必须是唯一的,所以不需要对其数据类型进行判断。也可以使用isset()函数完成对数组中的键名进行检查,单isset()对于数组中为null的值不会返回true,而array_key_exists()会。代码如下所示:
123456789101112 1,'second'=>4);            //声明一个关联数组,其中包含两个元素     if(array_key_exists('first',$search_arry)){             //检查下标为first对应的元素是否在数组中        echo 键名为'first'的元素在数组中;    }     $search_array = array('first'=> null,'second'=>4);            //声明一个关联数组,第二个元素的值为null     isset($search_array['first']);                  //用isset()检索下标为first的元素返回false    array_key_exists('first',$search_array);                //用array_key_exists()检索下标为first的元素返回true?>
④函数array_flip()
array_flip()的作用是交换数组中的键和值。返回一个反转后的数组,如果同一个值出现了多次,则最后一个键名将作为它的值,覆盖前面出现的元素。如果原数组中的值数据类型不是字符串或整数,函数将报错。该函数只有一个参数,其函数原型如下:
array array_flip(trans)
参数是必须的,要求输入一个要处理的数组,返回该数组中每个元素的键和值交换后的数组。函数array_flip()使用的代码如下所示:
12345678910 linux,webserver=>apache,database=>mysql,language=>php);     //输出:array([linux]=>os [apache]=>webserver [mysql]=>database [php]=language);    print_r(array_flip($lamp));             //使用array_flip()函数交换数组中的键和值     //在数组中如果元素的值相同,则使用array_flip()会发生冲突    $trans = array(a=>1,b=>1,c=2);    print_r(array_flip($trans));            //现在$trans变成了:array([1]=> b [2]=> c)?>
⑤函数array_reverse()
array_reverse()作用是原数组中的元素顺序翻转,创建新的数组并返回。该函数有两个参数,其函数的原型如下:
array array_reverse(array array[,bool preserve_keys])
第一个参数是必选项,接收一个数组作为输入。第二个参数是可选项,如果指定为true,则元素的键名保持不变,否则键名将会丢失。函数array_reverse()使用的代码如下所示:
1234567 linux,webserver=>apache,database=>mysql,language=>php);     //使用array_reverse()函数将数组$lamp中的元素的顺序翻转    print_r(array_reverse($lamp));    //输出的结果array([language]=>php [database]=>mysql [webserver]=>apache  [os]=>linux)?>
>> 本文固定链接: http://php.ncong.com/php_course/arry_function/key-value.html
从键盘读入n个整数放入数组中,编写函数compactintegers,删除数组中所有值为0的元素,其后元素向数组
#include
int compactlntegers(int a[], int *m)
{
int i,j,n;//这里我使用c编译器做的,所以修改了一下,
//如果是c++应该可以直接使用引用传值,按你原来写的应该可以修改主程序中n的值
n=*m;
for(i=0;i {
if(a[i]==0)
{
for(j=i;ja[j]=a[j+1];
n--;
}
}
*m=n;
return j;
}
void main()
{
int i,n,a[100];
printf(please input your number:\n);
scanf(%d,&n);
for(i=0;i {
printf(please input the %d number:,i+1);
scanf(%d,&(a[i]));
}
compactlntegers(a,&n);
for(i=0;i {
printf(the %d number is: %d\n,i+1, a[i]);
}
}
 php数组使用shuffle函数打乱后不同键出现重复值
代码呢
是不是原本你的数组就是有重复值的
http://www.bkjia.com/phpjc/860919.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/860919.htmltecharticle数组的键/值操作函数,数组函数 ph 在 p中,数组的每个元素都是由键/值组成的,通过元素的键来访问对应的键的值。关联数组指的是键名...
其它类似信息

推荐信息