如何获得主数组键的子数组值? [腓]

时间:2017-02-09 08:41:00

标签: php arrays

我有一个数组。该数组有一个子数组。我想将子数组值取为主数组键。这是我的示例数组:

Array
(
    [0] => Array
        (
            [index-id] => 12
            [title] => Example Title
            [description] => Example Description
        )
    [1] => Array
        (
            [index-id] => 32
            [title] => Example Title
            [description] => Example Description
        )
)

我想将 index-id 带到主数组键我的数组必须是这样的

Array
(
    [12] => Array
        (
            [index-id] => 12
            [title] => Example Title
            [description] => Example Description
        )
    [32] => Array
        (
            [index-id] => 32
            [title] => Example Title
            [description] => Example Description
        )
)

我该怎么做?

3 个答案:

答案 0 :(得分:2)

试试这个,

$temp = [];
foreach($arr as $k => $v){
    $temp[$v['index-id']] = $v;
}
print_r($temp);

$temp是结果数组,$arr是您的数组。

尝试一下,它会起作用。

答案 1 :(得分:2)

使用array_columnarray_combine函数的简短解决方案:

// $arr is your initial array
$result = array_combine(array_column($arr, 'index-id'), $arr);

答案 2 :(得分:0)

为此您只需要一个函数调用。由于 array_combine() 的特殊功能,不需要 array_column()

要保留所有子数组数据,请使用 null 作为第二个参数。

要分配新的第一级键,请使用单个列的名称作为第三个参数。

代码:(Demo)

array_column($array, null, 'index-id')

输出:

array (
  12 => 
  array (
    'index-id' => 12,
    'title' => 'Example Title',
    'description' => 'Example Description',
  ),
  32 => 
  array (
    'index-id' => 32,
    'title' => 'Example Title',
    'description' => 'Example Description',
  ),
)