查找PHP数组兄弟键的值(Find value of sibling key in php arra

2019-06-27 13:17发布

我在PHP中的数组,这里是一个片段:

Array
(
[0] => Array
    (
        [id] => 202
        [name] => GXP Club - Fable
    )

[1] => Array
    (
        [id] => 204
        [name] => GXP Club - Gray
    )
)

我所知道的(从GET)是ID(202)。 我想显示为“显示结果” ( where $locations[?][id] = $_GET['id'] { echo $locations[?][name] } ) -请原谅我使用伪代码。

不知道什么功能是最好的,或者如果我需要循环整个数组发现。 谢谢。

编辑:为进一步澄清。 我需要学习的[名]给出的[ID]

Answer 1:

foreach( $locations as $arr ) {
    if($arr['id'] == $_GET['id']) {
        echo $arr['name'];
        break;
    }
}

这应该够了吧。



Answer 2:

而循环阵列上是具有描述该问题的解决方案,它似乎更优化改变你的阵列是$id=>$name键值对,而不是命名的键值,如果是这样的阵列中的所有数据,例如:

$locations = array( '202' => 'GXP Club - Fable',
                    '204' => 'GXP Club - Gray',
             )

另外,如果有更多的数据,我想切换到一个嵌套的数据结构,例如:

$locations = array( '202' => array( 'name' => 'GXP Club - Fable', 'prop2' =>$prop2, etc),      
                    '204' => array( 'name' => 'GXP Club - Gray', 'prop2' =>$prop2, etc),
             )

这使得它使您可以通过访问ID(例如数据$locations[$id]['name']这似乎是你通常想要做什么。



Answer 3:

您可以使用array_map它适用您的自定义操作,以在给定数组的每个元素的功能。

array_map(
    function($arr) { if ($arr['id'] == $_GET['id']) echo $arr['name']; }, 
    $locations
);


文章来源: Find value of sibling key in php array