简体   繁体   English

在PHP数组中搜索值

[英]Search values in php array

I have an array like this: 我有一个像这样的数组:

array(5) { 
[0]=> array(1) { ["go-out"]=> string(7) "#0d4b77" } 
[1]=> array(1) { ["cycling"]=> string(7) "#1472b7" } 
[2]=> array(1) { ["diving"]=> string(7) "#1e73be" } 
[3]=> array(1) { ["exploring"]=> string(7) "#062338" } 
[4]=> array(1) { ["eating"]=> string(7) "#f79e1b" } 
} 

Let's say I have the first value like 'cycling', so how can I find the '#147217' value? 假设我有第一个值,例如“ cycling”,那么如何找到“#147217”值?

I have been trying a lot of combinations of 我一直在尝试很多组合

foreach ( $array as $key => list($key1 ,$val)) {
           if ($key1 === $id) {
               return $val;
           }
       }

But no luck. 但是没有运气。 Ideas? 有想法吗?

You can use array_column - 您可以使用array_column

array_column($your_array, 'cycling');

DEMO 演示

You should also add the checks for key's existence. 您还应该添加对密钥是否存在的检查。

you may still make one loop 你仍然可以做一个循环

$id =  "cycling";   
foreach($array as $val)
   if(isset($val[$id])) echo $val[$id];

Demo on Evail.in Evail.in上的演示

I have reformated tour code, try this, that works: 我已经重新设置了游览代码,可以尝试一下,该方法有效:

$array = array(
    0 => array("go-out" => "#0d4b77"),
    1 => array("cycling" => "#1472b7"),
    2 => array("diving" => "#1e73be"),
    3 => array("exploring" => "#062338"),
    4 => array("eating" => "#f79e1b")
);

$id = "cycling";

foreach ($array as $key => $entry) {
    if ($entry[$id]) {
        echo $entry[$id];
    }
}
$array = array(
    0 => array("go-out" => "#0d4b77"),
    1 => array("cycling" => "#1472b7"),
    2 => array("diving" => "#1e73be"),
    3 => array("exploring" => "#062338"),
    4 => array("eating" => "#f79e1b")
);

$search = "cycling";

foreach ($array as $key => $entry)
    if (isset($entry[$search]))
        echo $entry[$search];

That works. 这样可行。

Nice day. 美好的一天。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM