从多维数组中获取特定的键值对

5

我有以下数组:

array(2) {
  [0] => array(3) {
    ["submission_id"] => int(28)
    ["date"] => string(22) "2010-10-18 15:55:33+02"
    ["user_id"] => int(12)
  }
  [1] => array(3) {
    ["submission_id"] => int(37)
    ["date"] => string(22) "2010-11-21 16:02:07+01"
    ["user_id"] => int(23)
  }

我想从这个数组中仅获取user_id键的值。我可以循环遍历它,但我想知道是否有更快的方法。
2个回答

17

你可以使用array_map(可能不会更快,因为它会针对每个数组元素进行一次函数调用):

function getUserId($a) {
    return $a['user_id'];
}

$user_ids = array_map('getUserId', $array);

除此之外,循环是唯一的方法(array_map本质上也是循环)。


4
谢谢!我的建议(PHP> 5.3): $user_ids = array_map(function ($row) { return $row ['user_id']; }, $array); - mgutt

-3

如果您知道要访问的数组索引,可以像这样访问user_id值:

$arr = your array here..
echo $arr[0]['user_id'];
echo $arr[1]['user_id'];

这种方法无法扩展,因为无法知道总元素数量。 - jimy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接