$a=array("1"=>"语文","2"=>"数学","3"=>"奥数","4"=>"英语","5"=>"物理","6"=>"化学","7"=>"生物","8"=>"地理","9"=>"历史","10"=>"政治","11"=>"钢琴","12"=>"小提琴","13"=>"吉他","14"=>"托福","15"=>"雅思","16"=>"法语","17"=>"日语","18"=>"德语","19"=>"韩语","20"=>"英语口语","21"=>"美术","22"=>"计算机");$b=Array( [0] => 3 [1] => 4 [2] => 5 [3] => 6 [4] => 7 [5] => 8 [6] => 9 [7] => 21 );用$b的键值 和 $a的键值对比,然后获取$a的键值相对应的值。这个该怎么写? 求解。

解决方案 »

  1.   

    是想这样吗?
    foreach($b as $k=>$v)
    {
        $b[$k] = $a[$v];
    }
      

  2.   

    不是很明白lz的意思,键值作对比,对比后什么情况下获取$a的键值相对应的值?
      

  3.   

    我想你要的是这个foreach($b as $i=>$k) $b[$i] = $a[$k];
    print_r($b);
    Array ( [0] => 奥数 [1] => 英语 [2] => 物理 [3] => 化学 [4] => 生物 [5] => 地理 [6] => 历史 [7] => 美术 ) 如果是,那你描述错了
      

  4.   


    $a1 = array('a' => 'aaa', 'b' => 'bb');
    $a2 = array('a' => 'aaa', 'c' => 'cc');
    foreach (array_intersect_assoc($a1, $a2) as $k => $v)
    {
    unset($a2[$k]);
    }
    var_dump($a1, $a2);
    这样吗?