A数组:
$dbData = array(
    array(0, '张三', '吃饭'),
    array(1, '李四', '吃饭'),
    array(2, '麻子', '吃饭'),
    array(3, '麻子', '喝水')
);
B数组
$excelData = array(
    array(0,'zhangsan', '张三'), 
    array(1,'lisi', '李四'), 
    array(2,'mazi ', '麻子')  
);
想用数组B去替换掉数组A中的元素,张三用zhangsan代替,李四用lisi代替,麻子用mazi代替
得出这样的结果:
c数组:
$dbData = array(
    array(0, 'zhangsan', '吃饭'),
    array(1, 'lisi', '吃饭'),
    array(2, 'mazi', '吃饭'),
    array(3, 'mazi', '喝水')
);

解决方案 »

  1.   

    $dbData = array(
      array(0, '张三', '吃饭'),
      array(1, '李四', '吃饭'),
      array(2, '麻子', '吃饭'),
      array(3, '麻子', '喝水')
    );$excelData = array(
      array(0,'zhangsan', '张三'),  
      array(1,'lisi', '李四'),  
      array(2,'mazi ', '麻子')   
    );//改造 $excelData 因为是替换标的,所以相关键值对必是唯一的
    foreach($excelData as $v) $dict[$v[2]] = $v;//开始替换
    foreach($dbData as &$v) $v[1] = $dict[$v[1]][1];//检查结果
    print_r($dbData);
    Array
    (
        [0] => Array
            (
                [0] => 0
                [1] => zhangsan
                [2] => 吃饭
            )    [1] => Array
            (
                [0] => 1
                [1] => lisi
                [2] => 吃饭
            )    [2] => Array
            (
                [0] => 2
                [1] => mazi 
                [2] => 吃饭
            )    [3] => Array
            (
                [0] => 3
                [1] => mazi 
                [2] => 喝水
            ))