本文目錄一覽:
- 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;
}
以上為純原創手打,而且是手機打出來的,如果滿意,請採納
原創文章,作者:YXCD,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/132473.html