douhan8581 2017-04-06 18:14
浏览 8
已采纳

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

I am having this array

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

i want this resulting array

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

if possible without using any loop? if Yes Then How?

  • 写回答

2条回答 默认 最新

  • dtbrd80422 2017-04-07 05:07
    关注

    Here is your input array,

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

    Here is one liner code :

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

    What I am doing is

    1. array_column will fetch all values in array related to specific key, so I fetched two arrays values to specific keys
    2. Then I used array_combine to create an array by using one array for keys and another for its values.

    Here is output:

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

    Here is working code

    click here

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?