我在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]
foreach( $locations as $arr ) {
if($arr['id'] == $_GET['id']) {
echo $arr['name'];
break;
}
}
这应该够了吧。
而循环阵列上是具有描述该问题的解决方案,它似乎更优化改变你的阵列是$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']
这似乎是你通常想要做什么。
您可以使用array_map
它适用您的自定义操作,以在给定数组的每个元素的功能。
array_map(
function($arr) { if ($arr['id'] == $_GET['id']) echo $arr['name']; },
$locations
);