$arr = array();
$x;
foreach($array2 as $k => $v) {
    x = array_search($v,$array1);
     if (x) {
        $arr[$k] = $v;
    } else {
        $arr[$k] = 0;
    }
}

解决方案 »

  1.   

    $array1=array("1","2","3","4","5","6");//此数据值固定。
    $array2=array("1","3","6","4");//此数据值不固定。
    $arr = array();
    foreach($array1 as $v){
    $arr[] = in_array($v, $array2) ? $v : 0;
    }
    print_r($arr);
      

  2.   

    array_search()返回的是匹配到的键名,当第一个匹配到,键名是0,if判断就不存在了,这里存在一点问题
      

  3.   

    php里面有个数组比较函数 array_diff的呀。
      

  4.   

    不错,可以借助 array_diff$a = array("1","2","3","4","5","6");
    $b = array("1","3","6","4");
    $c = $a;
    foreach(array_diff($a, $b) as $k=>$v) $c[$k] = 0;print_r($c);Array
    (
        [0] => 1
        [1] => 0
        [2] => 3
        [3] => 4
        [4] => 0
        [5] => 6
    )
      

  5.   


    $array1=array("1","2","3","4","5","6");//此数据值固定。
    $array2=array("1","3","6","4");//此数据值不固定。$c = array_diff($array1, $array2);foreach($c as $k=>$v){
        $array1[$k] = 0;
    }print_r($array1);
    Array
    (
        [0] => 1
        [1] => 0
        [2] => 3
        [3] => 4
        [4] => 0
        [5] => 6
    )