在php数组搜索中进行数组搜索
我需要搜索键值为蓝色
但两个值的关键为紫色,蓝色
当我尝试以下操作时,它什么都没有显示
$array = array(1 => 'orange', 2 => 'yellow', 3 => 'green', 4 => 'purple','blue');
$key = array_search('blue', $array);
echo $key;
如何找到蓝色键或我是否需要更改$array
?
答案 0 :(得分:1)
首先,您作为示例显示的程序将输出5作为“蓝色”的键值,正如其他人已经指出的那样。
现在,如果我理解你可能想要的东西,那就是让同一个索引引用两个元素的方法。
在这种情况下,您可以简单地交换键和值,如下所示:
$array = array(
'orange' => 1,
'yellow' => 2,
'green' => 3,
'purple' => 4,
'blue' => 4);
echo $array['purple']; // 4
echo $array['blue' ]; // 4
答案 1 :(得分:0)
在这种情况下,最大用户分配的密钥为 4 ,即紫色,因此最终为 5 为蓝色...并且您正在使用的代码将返回正确的输出 5
。
如果您对阵列进行了print_r()
,您将会明白这一点..请参阅此处
Array
(
[1] => orange
[2] => yellow
[3] => green
[4] => purple
[5] => blue
)
<强> EDIT :
强>
当我搜索紫色或蓝色时,我需要找到密钥为4!如何 这样做
而是像这样修改你的数组......
<?php
$array = array(1 => 'orange', 2 => 'yellow', 3 => 'green', 4 => 'purple,blue'); //Adding purple and blue seperated by comma...
foreach($array as $k=>$v)
{
if(strpos($v,'purple')!==false)
{
echo $k;// "prints" 4 if you pass purple or blue !
break;
}
}