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

使用php将多维数组的值设置为新数组的键,php,arrays,multidimensional-array,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', 'q

我有这个阵列

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' 
)
如果可能,不使用任何循环? 如果是,则如何?

使用可以从数组中创建包含自定义键/值的新数组

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

检查

中的代码结果这是您的输入数组,

$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');
Array
(
    [q3] => 15
    [q1] => 5
    [q2] => 10
)
我正在做的是

  • 将获取数组中与特定键相关的所有值,所以我将两个数组值获取到特定键
  • 然后我使用一个数组作为键,另一个数组作为值来创建一个数组
  • 这里是输出:

    $result = array_combine(array_column($arr, 'sno'), array_column($arr, 'result'));  
    // $result = array_column($arr,'result','sno');
    
    Array
    (
        [q3] => 15
        [q1] => 5
        [q2] => 10
    )
    
    这里是工作代码


    你试过什么?看一看这张单子。是你要找的函数吗?我已经用过forch loop了@markbaker回答它终于找到了解决方案谢谢的@markbaker