导航:首页 > 编程语言 > php根据key获取value

php根据key获取value

发布时间:2023-03-01 10:58:23

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

(1)php根据key获取value扩展阅读

使用方法:

$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怎么用问号传值

例如:
在aa.php页面中写:(问号后面为要传的值)
<a href="bb.php?name=jhy&sex=男">问号传值</a>
在bb.php页面中写(获取所传的值):
<?php
$name=$_GET["name"];
$sex=$_GET["sex"];
echo $name."".$sex;
?>
你会在bb.php页面中看到地址栏包含bb.php?name=jhy&sex=男,页面中会得到你要传的结果。

Ⅲ 使用php Memcache模块如何正确遍历所有KEY以及VALUE

在php提供的用于与memcached交互的扩展模块中有memcached与memcache,前者提供方法getAllKeys用于遍历所有Memcached服务器上的key,但是并不保证原子操作,而后者却没有提供任何方法,虽然在PHP官方
文档中有人给出使用方法getExtendedStats来间接获取Memcached服务器上的所有key,但是给出的代码是有不少坑的,如果拿来就用,对于cluster的memcached服务器而言,有些问题就需要指出来。
下面将给出官方文档中的代码,并指出可能面临的问题,代码如下:
<?php
/**
*Functiontogetallmemcachekeys
*@authorManishPatel
*@Created:28-May-2010
*/
functiongetMemcacheKeys(){

$memcache=newMemcache;
$memcache->connect('127.0.0.1',11211)ordie("");

$list=array();
$allSlabs=$memcache->getExtendedStats('slabs');
$items=$memcache->getExtendedStats('items');
foreach($allSlabsas$server=>$slabs){
foreach($slabsAS$slabId=>$slabMeta){
$cmp=$memcache->getExtendedStats('cachemp',(int)$slabId);
foreach($cmpAS$keys=>$arrVal){
foreach($arrValAS$k=>$v){
echo$k."<br>";
}
}
}
}//EOgetMemcacheKeys()?>
在上述代码中,如果用于获取单个memcached服务器上的key,是不存在任何问题,但是获取连接池中的多个memcached所有key就存在问题,会发现打印出重复的key,问题就在于当使用getExtendedStats用去特定$slabID
上的信息时,返回的是连接池中所有的服务器上的特定$slabId的存储的keys信息。当$server为"127.0.0.1:11214"且$slabId为0将变量$cmp的信息打印出如下所示:
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将变量$cmp的信息打印出如下所示:
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根据一组key值返回元素

<?php
$source = array('a' => '111', 'b' => '222', 'c' => '33333', 'd' => '4444');
$needKey = array('a', 'c');
$needKey = array_flip($needKey); //调转键值使之可比。array('a'=>0, 'c'=>1)
$array = array_intersect_ukey($source,$needKey,'key_compare_func'); //array_intersect_ukey用回调函数比较键名来计算数组的交集

var_mp($array);

function key_compare_func($key1, $key2){
if ($key1 == $key2)
return 0;
else if ($key1 > $key2)
return 1;
else
return -1;
}

//End_php

Ⅳ PHP怎么搜索数组的键并查找到对应的值

array_search()函数在一个数组中搜索一个指定的值,如果找到则返回相应的键,否则返回FALSE1.搜索关联数组键如果在一个数组中找到一个指定的键,函数array_key_exists()返回TRUE,否则返回FALSE。其形式如下:boolean array_key_exists(mixed key, array array)下面的例子将在数组键中搜索Ohio,如果找到,将输出这个州加入育关信息:$state["Delaware"]="December 7,1787";$state["Pennsylvania"]="December 12, 1787";$state["Ohio"]="March l,1803";86 第5章数 组if (array_key_exists("Ohio", $state》printf("Ohio joined the Union on %s", $state["Ohio"]);结果如下:2.搜索关联数组值array_search()函数在一个数组中搜索一个指定的值,如果找到则返回相应的键,否则返回FALSE。其形式如下:下面的例子在$state中搜索一个特定的日期(December7),如果找到,则返回相应州的有关信息:$state["Ohio"] = "March l"; .$statef"Delaware"l = "December 7";$state["Pennsylvania"] = "December 12u;$founded = array_search("December 7", $state),i+ ($founded) printf("%s was founded on %s.", $founded, $state[$founded]);输出如下:Delaware was十ounded on December 7.5.4.2获取数组键array_keys()函数返回一个数组,其中包含所搜索数组中找到的所有键。其形式知下:array array_keys(array array【J mixed search_value])如果包含可选参数search value,则只会返回与该值匹配的键。下面的例子将输出$state数组中找到的所有键值:$state["Delaware"] = "December 7, 1787";$state["Pennsylvania"] = "December 12, i787";$state["New Jersey"] = "December 18, 1787";$keys = array_keys($state);print_r($keys);输出如下:5.4.3获取数组值array_values()函数返回一个数组中的所有值,并自动为返回的数组提供数值索引。其形式如下:array array_values(array array)5.5遍历数组 87下面的例子将获取$population中找到的各州人口数:$population=array("Ohio"=>"11,421,267", "Iowa"=>"2,936,760");print_r(array_values($population》;这个例子的输出如下:5.5遍历数组通常需要遍历数组并获得各个键或值(或者同时获得键和值),所以毫不奇怪,PHP为此提供了一些函数来满足需求。许多函数能完成两项任务,不仅能获取当前指针位置的键或值,还能将指针移向下一个适当的位置。本节将介绍这些函数。5.5.1 获取当前数组键key()函数返回input_array中当前指针所在位置的键。其形式如下:mixed key(array array)下面的例子通过迭代处理数组并移动指针来输出$capitals数组的键:$capitals=array("Ohio"=>"Columbus", "Iowa"=>"Des Moines");echo "<p>Can you name the capitals of these states?</p>";while($key=key($capitals》{printf("%s <br,>“,$key);next($capitals);,将返回以下结果:Ohio

Ⅵ php数组$key,$val问题

foreach($c as $d){echo $d;}这样就可以了!!
这个foreach结构中的$c as $d已经将$c中对应的每个元素的数组值放在$d里了!!

完整的是这样的
foreach($c as $key=>$value)
你上面的$d就相当于这个$value是值
$key是键值,你可以自己测试下

<?php
$a=array("a","b","c","d");
$b=array("Cat","Dog","Horse","Cow");
$c=array_combine($a,$b);
foreach ($c as $key=>$value) {echo $key,":",$value,"<br/>";}
?>输出
a:Cat
b:Dog
c:Horse
d:Cow

阅读全文

与php根据key获取value相关的资料

热点内容
新浪php笔试题 浏览:138
新时达服务器如何自学习 浏览:27
程序中什么命令用来输入单字符 浏览:59
php是否有数据 浏览:141
虚拟云服务器是什么意思 浏览:279
vb是编译性语言吗 浏览:209
json格式用什么编译器 浏览:319
word转pdf代码 浏览:802
单片机中如何编程 浏览:739
cad常见的快捷命令 浏览:625
服务器端有什么 浏览:325
文件夹正在使用如何重命名 浏览:378
单片机触摸 浏览:875
qq收藏夹在手机哪个文件夹 浏览:755
为什么app的密码总是不正确 浏览:324
方舟手机版为什么进不了服务器 浏览:594
服务器ip可以查到真实地址吗 浏览:656
象棋软件算法 浏览:993
飘零加密 浏览:175
文件加密软件哪个好用免费保险柜 浏览:752