本文目录一览:
- 1、php如何根据某一个value获取其key
- 2、使用php Memcache模块如何正确遍历所有KEY以及VALUE
- 3、什么是PHP中的值?什么是PHP中的键?
- 4、PHP 数组如何增加key
- 5、php实现数组按指定KEY排序的方法
- 6、PHP如何得到数组最后元素的key
php如何根据某一个value获取其key
在一些PHP的场景之中可能会遇到,在PHP的数组中需要根据其中某一个value值来获取得到其key的值。这个时候就需要使用到PHP数组函数中的array_search()这个方法。
$array = array('test0','test1','test2');
$array1 = array('test0','test1','test2','test1');
$key = array_search('test1',$array);
$key1 = array_search('test1',$array1);
echo $key;
echo $key1;
输出都是1
如果有重复的value输出第一个相匹配的key
扩展资料
使用方法:
$array = array(0 = 'blue', 1 = 'red', 2 = 'green', 3 = 'red');
$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array); // $key = 1;
//array_key_exists()的使用方法
$search_array = array('first' = 1, 'second' = 4);
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 Memcache模块如何正确遍历所有KEY以及VALUE
在php提供的用于与memcached交互的扩展模块中有memcached与memcache,前者提供方法getAllKeys用于遍历所有Memcached服务器上的key,但是并不保证原子操作,而后者却没有提供任何方法,虽然在PHP官方
文档中有人给出使用方法getExtendedStats来间接获取Memcached服务器上的所有key,但是给出的代码是有不少坑的,如果拿来就用,对于cluster的memcached服务器而言,有些问题就需要指出来。
下面将给出官方文档中的代码,并指出可能面临的问题,代码如下:
?php
/*\*
* Function to get all memcache keys
* @author Manish Patel
* @Created: 28-May-2010
\*/
function getMemcacheKeys() {
$memcache = new Memcache;
$memcache-connect('127.0.0.1', 11211) or die ("Could not connect to memcache server");
$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
上的信息时,返回的是连接池中所有的服务器上的特定$slabId 的存储的keys信息。当$server为"127.0.0.1:11214"且$slabId为0将变量$cdump的信息打印出如下所示:
array(2) {
["127.0.0.1:11214"]=
array(1) {
["course_schools__??¨é?¨"]=
array(2) {
[0]=
string(1) "0" [1]=
string(10) "12" }
}
["127.0.0.1:11216"]=
array(1) {
["monitorMemcache"]=
array(2) {
[0]=
string(2) "10" [1]=
string(10) "12" }
}
}
当$server为"127.0.0.1:11216"且$slabId为0将变量$cdump的信息打印出如下所示:
array(2) {
["127.0.0.1:11214"]=
array(1) {
["course_schools__??¨é?¨"]=
array(2) {
[0]=
string(1) "0" [1]=
string(10) "12" }
}
["127.0.0.1:11216"]=
array(1) {
["monitorMemcache"]=
array(2) {
[0]=
string(2) "10" [1]=
string(10) "12" }
}
}
什么是PHP中的值?什么是PHP中的键?
ID 是 是某个体系中相对唯一的编码,在php的数组中叫做key
一个key(键)对应一个value(值)
php的数组并不是其他语言中数组的意义,因为其他强类型的语言数组一般都是定长,并且 下标 是固定的数字排列。而php的数组(内部实现是用类)的下标(key)可以是数字,也可以是其他的任何 标量 (数字,字符串等),而且当数组的key是数字的时候也可以不连续。如 4,6,7,9,这样的下标。
$_POST $_GET 都是系统内定的数组
而传值就是里面的一个变量。
$_POST['这里是表单中的属性name的值'] // 这个表达式的值是 表单中属性value的值
所以,这里理解的ID并不是单纯的数字下标,而是能够代表一个数组内容的实际的key
PHP 数组如何增加key
你直接给$return['a']赋值就好了。
比如$return本来是个空数组,我想加一个键名,同时赋值只需要
$return['key'] = "value";
如果键名空着就是用0,1,2这些下标了,他会自动增加
php实现数组按指定KEY排序的方法
本文实例讲述了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);
foreach
($keysvalue
as
$k=$v){
$new_array[]
=
$arr[$k];
}
return
$new_array;
}
希望本文所述对大家的php程序设计有所帮助。
PHP如何得到数组最后元素的key
用数组偏移可以实现,首先数组分下标连续的数组和非下标连续的数组,通俗的说就是数字下标和非数字下标,数字下标
$number=array(
0="hello",
1="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;
}
以上为纯原创手打,而且是手机打出来的,如果满意,请采纳