本文目录一览:
- 1、php获取一维数组key的总和
- 2、如何取php中的memcache的相同前缀的key
- 3、PHP获取数组下标的问题
- 4、php 数值与数组中的值进行比较获取数组相对的KEY值:
- 5、PHP如何得到数组最后元素的key
php获取一维数组key的总和
返回数组中所有的key值:
$keys = array_keys($array)
2.求出总和:
$sum = array_sum($keys)
$sum为所有key的总和
如何取php中的memcache的相同前缀的key
在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 ."";
}
}
}
}//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 获取数组指定值的位置或下标代码如下:
?php
//定义一个数组
$array = array(0 = 'a', 1 = 'b', 2 = 'c', 3 = 'd');
//使用 array_search('要搜索的值',数组);
$key = array_search('b', $array); // $key = 1;
$key = array_search('a', $array); // $key = 0;
?
扩展资料
php 中的数组实际上是一个有序图。图是一种把 values 映射到 keys 的类型。此类型在很多方面做了优化,因此可以把它当成真正的数组来使用,或列表(矢量),散列表(是图的一种实现),字典,集合,栈,队列以及更多可能性。
因为可以用另一个 php 数组作为值,也可以很容易地模拟树。解释这些结构超出了本手册的范围,但对于每种结构至少会发现一个例子。要得到这些结构的更多信息,建议参考有关此广阔主题的外部著作。
对于任何的类型:整型、浮点、字符串、布尔和资源,如果将一个值转换为数组,将得到一个仅有一个元素的数组(其下标为 0),该元素即为此标量的值。如果将一个对象转换成一个数组,所得到的数组的元素为该对象的属性(成员变量),其键名为成员变量名。
如果将一个 NULL 值转换成数组,将得到一个空数组。
php 数值与数组中的值进行比较获取数组相对的KEY值:
这个可以取巧,先把这个数插进数组,然后数组排序,然后获得这个数的下标,-1就是相对位置的值前面26的值,27本来下标就是源数组中的后一个
死一点的办法就是for循环对比值了,关键比对if:
if(arr[i]27 arr[i+1]27) continue;
if(arr[i]27 arr[i+1]27) echo 相对位置在i,i+1之间 ;
具体自己写啊
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;
}
以上为纯原创手打,而且是手机打出来的,如果满意,请采纳