php【数组对比输出】

认真为自己 2015-03-12 09:24:44

$array1=array("1","2","3","4","5","6");//此数据值固定。
$array2=array("1","3","6","4");//此数据值不固定。

实现效果:
array2与array1对比后array2没有的值用0代替。
结果:
1,0,3,4,0,6

请问怎么实现
...全文
224 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
傲雪星枫 2015-03-13
  • 打赏
  • 举报
回复

$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 )
xuzuning 2015-03-13
  • 打赏
  • 举报
回复
不错,可以借助 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
)

tilun_099 2015-03-13
  • 打赏
  • 举报
回复
php里面有个数组比较函数 array_diff的呀。
杨林强 2015-03-12
  • 打赏
  • 举报
回复
引用
#1 $arr = array(); $x; foreach($array2 as $k => $v) { x = array_search($v,$array1); if (x) { $arr[$k] = $v; } else { $arr[$k] = 0; } }
array_search()返回的是匹配到的键名,当第一个匹配到,键名是0,if判断就不存在了,这里存在一点问题
一起混吧 2015-03-12
  • 打赏
  • 举报
回复
$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);
jiangbai333 2015-03-12
  • 打赏
  • 举报
回复

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

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧