这是一道php的题目 
<?php 
$a = array(11=>aa,22=>bb,33=>cc,44=>dd,55=>ee); 
$b = array(22,11,33,55,44); 
上面两个集合如何能做到以下的结果 
$c = array(22=>bb,11=>aa,33=>cc,55=>ee,44=>dd); 
要按照$b的顺序出结果

解决方案 »

  1.   

    for($i=0;$i<5;$i++)
    {
    $c[$b[$i]]=$a[$b[$i]];

    }
      

  2.   

    foreach($b as $k=>$val){
       if(isset($a[$k])){
             $c[$k] = $a[$k];
      }
    }
      

  3.   


    foreach ($b as $v){
    $c[$v] = str_repeat(chr(substr($v,0,1)+96),2);
    }
      

  4.   

    foreach($b as $k=>$v) $c[$b[$k]]=$a[$v];
      

  5.   


    $a = array(11=>'aa',22=>'bb',33=>'cc',44=>'dd',55=>'ee');  
    $b = array(22,11,33,55,44);  
    print_r(change_position($a,$b));
    function change_position($input_array,$change_array)
    {
    if(!is_array($input_array) || !is_array($change_array))
    {
    return false;
    }
    foreach ($change_array as $value)
    {
    $new_array[$value]=$input_array[$value];
    }
    return $new_array;
    }
    /*
      结果
      Array
    (
        [22] => bb
        [11] => aa
        [33] => cc
        [55] => ee
        [44] => dd
    )*/
      

  6.   

    $a = array(11=>'aa',22=>'bb',33=>'cc',44=>'dd',55=>'ee');
    $b = array(22,11,33,55,44);
    foreach($b as $val){
        foreach($a as $k=>$v){
            if($val == $k){
                $new_arr[$k] = $v;
            }
        }
    }
    var_export($new_arr);
    /*
    结果为:
    array (
      22 => 'bb',
      11 => 'aa',
      33 => 'cc',
      55 => 'ee',
      44 => 'dd',
    )
    */
      

  7.   


    foreach($b as $v){ 
        $c[$v] = $a[$v]; 
    }
      

  8.   

    foreach($b as $key){
       if(isset($a[$key])){
             $c[$key] = $a[$key];
      }
    }