1

如何创建一个 SQL 提取结果数组并按从结果本身获取的键排序?

例如,数据库的结果如下所示:

$results = array(
    [0] => array(
        'id' => 'cat',
        'name' => 'Kitty'
    ),
    [1] => array(
        'id' => 'dog',
        'name' => 'Rex'
    )
);

我想变成:

$results = array(
    ['cat'] => array(
        'id' => 'cat',
        'name' => 'Kitty'
    ),
    ['dog'] => array(
        'id' => 'dog',
        'name' => 'Rex'
    )
);

我可以用foreach循环来做,但是有没有我缺少的内置函数?

4

1 回答 1

1

是的,函数array_column完全符合您的要求。

$results = array(
 array('id' => 'cat', 'name' => 'Kitty'),
 array('id' => 'dog', 'name' => 'Rex')
);

$res = array_column($results,null,'id');

echo "<pre>";
var_export($res);

输出:

array (
  'cat' => 
  array (
    'id' => 'cat',
    'name' => 'Kitty',
  ),
  'dog' => 
  array (
    'id' => 'dog',
    'name' => 'Rex',
  ),
) 
于 2019-12-08T11:58:31.130 回答