开发者社区> 问答> 正文

怎么使用内置函数处理数组的键值

怎么将
$tempArray = array(
    0=>"1:A",
    1=>"2:B",
    2=>"3:C",
    3=>"4:D",
    4=>"5:E",
);

转成:
$tempArray = array(
    "A"=>1,
    "B"=>2,
    "C"=>3,
    "D"=>4,
    "E"=>5,                
);

本来想使用php的内置函数 [size=; font-size: 0.92857em,0.92857em]array_map来处理的,但是没有成功,除了遍历之外,我更想直接使用php的内置函数来实现,请问代码应该怎么写呢?

展开
收起
zhedianshi 2014-06-13 17:26:45 7532 0
4 条回答
写回答
取消 提交回答
  • Re怎么使用内置函数处理数组的键值
    估计以后阿里云要变成开发者论坛。。。。。
    2014-06-17 22:33:39
    赞同 展开评论 打赏
  • Re怎么使用内置函数处理数组的键值
    可以试试
    $tempArray = array(
        0=>"1:A",
        1=>"2:B",
        2=>"3:C",
        3=>"4:D",
        4=>"5:E",
    );

    $result = array();

    array_map(function($value) use (&$result) {
        list($k,$v) = explode(":", $value);
        $result[$k] = $v;
    },$tempArray);

    用array_map(不支持key),这是一个方法.
    2014-06-13 17:43:00
    赞同 展开评论 打赏
  • Re怎么使用内置函数处理数组的键值
    $arr = ["1:A", "2:B", "3:C", "4:D", "5:E"];

    $arr = json_decode("{".implode(',', array_map(function($item){
        return preg_replace('/(.+?):(.+?)/', '"$2":"$1"', $item);
    }, $arr))."}", true);
    print_r($arr);
    /** output
    Array
    (
        [A] => 1
        [B] => 2
        [C] => 3
        [D] => 4
        [E] => 5
    )
    **/

    如果值里头的:唯一的话可以这么做,方法提供者为了显得狂拽一点缩成一句话了 `(*∩_∩*)′
    2014-06-13 17:39:53
    赞同 展开评论 打赏
  • $array = array(
        0=>"1:A",
        1=>"2:B",
        2=>"3:C",
        3=>"4:D",
        4=>"5:E",
    );
    //处理
    $array1 = array();
    array_walk($array, function($val,$key,$fix) use(&$array1){
        $v = explode($fix, $val);
        $array1[$v[1]] = $v[0];  
    },':');
    var_dump($array1);
    /* 输出
    array (size=5)
      'A' => string '1' (length=1)
      'B' => string '2' (length=1)
      'C' => string '3' (length=1)
      'D' => string '4' (length=1)
      'E' => string '5' (length=1)
    */

    也可以尝试这么处理
    array_walk($array, function($val,$key,$arr){
        $v = explode(":", $val);
        $arr[0][$v[1]] = $v[0];  
    },array(&$array1));


    2014-06-13 17:37:11
    赞同 展开评论 打赏
问答分类:
PHP
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载