通过其中一个字段从php数组中获取节点


Get node from php array by one of the fields

我有一个数组,其结构如下所示:

$groups = array();
while ($group = mysql_fetch_array($groups_result)) {
        $groups[] = array( 'id' => $group['id'], 'name' => $group['name']);
    }

稍后如何在代码中通过组的id获取组的名称?例如,我想要这样的函数:

function get_name_by_id($id, $array);

但我正在寻找一些已经在PHP中实现的解决方案。我知道用array[5]=array('name'=>"foo")等来制作数组会更容易,在这种情况下,5是id,但在我的代码中,已经创建了很多数组,就像我上面提到的那样,我无法轻松切换它。

$groups = array();
while ($group = mysql_fetch_assoc($groups_result)) {
    $groups[$group['id']] = array( 'name' => $group['name']);
}
$name = $groups['beer']['name'];

另外,请不要使用fetch_assoc比提取数组更高效

function get_name_by_id($id, $data) {
    foreach($data as $d) {
        if ($d['id'] == $id) {
            return $d['name'];
        }
    }
    // return something else, id was not found
}