使用多维数组中的值对数组重新索引

时间:2018-12-07 20:29:39

标签: php arrays laravel

我有一个从db laravel select返回的数组结构,如下所示:

array:219 [▼
  0 => {#236 ▼
    +"mID": "101"
    +"qAVG": "6.44444"
  }
  1 => {#235 ▼
    +"mID": "102"
    +"qAVG": "4.15068"
  }

除了循环遍历整个数组并创建新变量之外,PHP中还有一个函数可以生成如下内容:

Array = array(
  101 => array(
           'qAVG' => 6.44444
            ),

  101 => array(
           'qAVG' => 4.15068
            )
)

2 个答案:

答案 0 :(得分:3)

是的,该array_column有一个函数,可让您从多维数组中提取特定元素和/或通过特定元素对结果进行索引。两者都如此:

$result = array_column($array, 'qAVG', 'mID');

如果子数组具有更多元素,并且您也希望它们,则只需重新索引:

$result = array_column($array, null, 'mID');

答案 1 :(得分:1)

如果您还没有在Laravel中转换为数组,则可以使用集合函数pluck()

DB::table('foo')->select(['mID', 'qAVG'])->get()->pluck('qAVG', 'mID');

第一个参数是要使用的参数,第二个参数是要用作键的参数。对于填充带有选项的选择下拉列表非常有用。

与上述注释类似,如果需要其他列:

DB::table('foo')->get()->keyBy('mID');