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