使用php将多维数组的值设置为新数组的键

时间:2017-04-06 18:14:47

标签: php arrays multidimensional-array

我有这个数组

array (
    0 => array ( 'sno' => 'q3', 'result' => '15', ),
    1 => array ( 'sno' => 'q1', 'result' => '5', ),
    2 => array ( 'sno' => 'q2', 'result' => '10', ),
)

我想要这个结果数组

array ( 
    'q3' => '15', 
    'q1' => '5',
    'q2' =>'10' 
)

如果可能,不使用任何循环? 如果是,那么如何?

2 个答案:

答案 0 :(得分:0)

使用array_reduce(),您可以创建包含数组中自定义键/值的新数组。

$newArr = array_reduce($oldArr, function($carry, $item){
    $carry[$item["sno"]] = $item["result"];
    return $carry;
});

demo

中检查代码结果

答案 1 :(得分:0)

这是您的输入数组

$arr=  array (
    0 => array ( 'sno' => 'q3', 'result' => '15', ),
    1 => array ( 'sno' => 'q1', 'result' => '5', ),
    2 => array ( 'sno' => 'q2', 'result' => '10', ),
);

以下是一个班轮代码:

$result = array_combine(array_column($arr, 'sno'), array_column($arr, 'result'));  
// $result = array_column($arr,'result','sno');

我正在做的是

  1. array_column将获取与特定键相关的数组中的所有值,因此我将两个数组值提取到特定键
  2. 然后我使用array_combine创建一个数组,方法是使用一个数组作为键,另一个数组作为其值。
  3. 输出:

    Array
    (
        [q3] => 15
        [q1] => 5
        [q2] => 10
    )
    

    以下是工作代码

    click here

相关问题