我预先定义一些需要转换的内容,比如:
'Jan' => 1,
'Feb' => 2,
'Mar' => 3,
'Apr' => 4,
'May' => 5,
'June'=> 6,
'July'=> 7,
'Aug' => 8,
'Sept'=> 9,
'Oct' => 10,
'Nov' => 11,
'Dec' => 12我现在有一条数组$array = ('Jan','May','June','Aug');
如何让我现在出现的这四个按照预定的结果转换并且打印出来。

解决方案 »

  1.   

    囧。是不是扫描原数组,key转换为value即可?
      

  2.   


    最简单的<?php
    $transfer = array(
    'Jan' => 1,
    'Feb' => 2,
    'Mar' => 3,
    'Apr' => 4,
    'May' => 5,
    'June'=> 6,
    'July'=> 7,
    'Aug' => 8,
    'Sept'=> 9,
    'Oct' => 10,
    'Nov' => 11,
    'Dec' => 12,
    );

    $needs = array('Jan','May','June','Aug');

    foreach($needs as $key){
    if(isset($transfer[$key])){
    echo $tranfer[$key].PHP_EOL;
    }
    }
      

  3.   

    恩,这个也可以。
     $transfer = array(
            'Jan' => 1,
            'Feb' => 2,
            'Mar' => 3,
            'Apr' => 4,
            'May' => 5,
            'June'=> 6,
            'July'=> 7,
            'Aug' => 8,
            'Sept'=> 9,
            'Oct' => 10,
            'Nov' => 11,
            'Dec' => 12,
        );
         
        $needs = array('Jan','May','June','Aug');
    echo strtr(join(',',$needs),$transfer);
    1,5,6,8
      

  4.   

    另类的写法$transfer = array(
            'Jan' => 1,
            'Feb' => 2,
            'Mar' => 3,
            'Apr' => 4,
            'May' => 5,
            'June'=> 6,
            'July'=> 7,
            'Aug' => 8,
            'Sept'=> 9,
            'Oct' => 10,
            'Nov' => 11,
            'Dec' => 12,
        );
          
    $needs = array('Jan','May','June','Aug');
    extract($transfer);
    echo join(',', compact($needs));
    1,5,6,8