PHP获取二维数组指定键名下包含值的所有数组

对于一个二维数组,如何获取指定键名的值等于某些指定的值,如

$a = [
    [
        'id' => 2,
        'name' => 'zhangsang'
    ],
    [
        'id' => 5,
        'name' => 'lishi'
    ],
    [
        'id' => 6,
        'name' => 'wangwu'
    ],
    [
        'id' => 28,
        'name' => 'zhaoer'
    ],
];

$st = '2,28';

//最后输出数组$a中第一个和最后一个
d(inArrayKey($a, $st, 'id'));

/**
 * 返回二维数组中指定键名下字段包含的所有数组
 * @param [type] $array 指定二维数组
 * @param [type] $inarray 要包含的键名值 array/string
 * @param [type] $field 指定字段
 * @return void
 */
function inArrayKey($array, $inarray, $field){
    if(!is_array($inarray)){
        $inarray = explode(',', $inarray);
    }
    $arr = [];
    foreach($array as $key=>$value){
        if(in_array($value[$field], $inarray)){
            $arr[] = $value;
        }
    }
    return $arr;
}