在一些PHP的场景之中可能会遇到,在PHP的数组中需要根据其中某一个value值来获取得到其key的值.这个时候就需要使用到PHP数组函数中的array_search()这个方法.
$key = array_search('test1',$array);
$key1 = array_search('test1',$array1);
echo $key;
echo $key1;
输出都是1? ?
如果有重复的value输出第一个相匹配的key
扩展资料
使用方法:
$key = array_search('red', $array);? ?// $key = 1;
//array_key_exists()的使用方法
if (array_key_exists('first', $search_array)) {
echo "The 'first' element is in the array";
}
//相关函数有
array_keys() - Return all the keys or a subset of the keys of an array
array_values() - Return all the values of an array
array_key_exists() - Checks if the given key or index exists in the array
在php提供的用于与memcached交互的扩展模块中有memcached与memcache,前者提供方法getAllKeys用于遍历所有Memcached服务器上的key,但是并不保证原子操作,而后者却没有提供任何方法,虽然在PHP官方
文档中有人给出使用方法getExtendedStats来间接获取Memcached服务器上的所有key,但是给出的代码是有不少坑的,如果拿来就用,对于cluster的memcached服务器而言,有些问题就需要指出来.
下面将给出官方文档中的代码,并指出可能面临的问题,代码如下:
php
/*\*
*?Function?to?get?all?memcache?keys
*?@author?Manish?Patel
\*/
function?getMemcacheKeys()?{
$memcache?=?new?Memcache;
$list?=?array();
$allSlabs?=?$memcache-getExtendedStats('slabs');
$items?=?$memcache-getExtendedStats('items');
foreach($allSlabs?as?$server?=?$slabs)?{
foreach($slabs?AS?$slabId?=?$slabMeta)?{
$cdump?=?$memcache-getExtendedStats('cachedump',(int)$slabId);
foreach($cdump?AS?$keys?=?$arrVal)?{
foreach($arrVal?AS?$k?=?$v){
echo?$k?."br";
}//EO?getMemcacheKeys()?
在上述代码中,如果用于获取单个memcached服务器上的key,是不存在任何问题,但是获取连接池中的多个memcached所有key就存在问题,会发现打印出重复的key,问题就在于当使用getExtendedStats用去特定$slabID
array(1)?{
["course_schools__?◆é?◆"]=
[0]=
string(1)?"0"?[1]=
["monitorMemcache"]=
ID 是 是某个体系中相对唯一的编码,在php的数组中叫做key
一个key(键)对应一个value(值)
$_POST $_GET 都是系统内定的数组
而传值就是里面的一个变量.
$_POST['这里是表单中的属性name的值'] // 这个表达式的值是 表单中属性value的值
所以,这里理解的ID并不是单纯的数字下标,而是能够代表一个数组内容的实际的key
你直接给$return['a']赋值就好了.
比如$return本来是个空数组,我想加一个键名,同时赋值只需要
$return['key'] = "value";
本文实例讲述了php实现数组按指定KEY排序的方法.分享给大家供大家参考.具体实现方法如下:
function
array_sort($arr,$keys,$orderby='asc'){
$keysvalue
=
$new_array
array();
foreach
($arr
as
$k=$v){
$keysvalue[$k]
$v[$keys];
if($orderby==
'asc'){
asort($keysvalue);
}else{
arsort($keysvalue);
reset($keysvalue);
($keysvalue
$new_array[]
$arr[$k];
return
$new_array;
希望本文所述对大家的php程序设计有所帮助.
用数组偏移可以实现,首先数组分下标连续的数组和非下标连续的数组,通俗的说就是数字下标和非数字下标,数字下标
$number=array(
0="hello",
①.="world"
);
像以上这种类型的数组,想取出单个值,可以这样取:echo $number[0],结果会输出hello,当然还可以用for,foreach等依次遍历取出所有值.
非数字下标:
$abc=array(
"a"="this is array first value",
"b"="this is array two value"
这个数组也可以用上面偏移的方法取出单个值,下面例子就用foreach取出key和val:
foreach($abc as $key=$val){
echo $key.'/'.$val;