> 백엔드 개발 > PHP 튜토리얼 > php【数组对比输出】解决办法

php【数组对比输出】解决办法

WBOY
풀어 주다: 2016-06-13 12:16:57
원래의
831명이 탐색했습니다.

php【数组对比输出】

<br />$array1=array("1","2","3","4","5","6");//此数据值固定。<br />$array2=array("1","3","6","4");//此数据值不固定。<br />
로그인 후 복사

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

请问怎么实现
------解决思路----------------------
<br />$arr = array();<br />$x;<br />foreach($array2 as $k => $v) {<br />    x = array_search($v,$array1);<br />     if (x) {<br />        $arr[$k] = $v;<br />    } else {<br />        $arr[$k] = 0;<br />    }<br />}<br />
로그인 후 복사

------解决思路----------------------
$array1=array("1","2","3","4","5","6");//此数据值固定。<br />$array2=array("1","3","6","4");//此数据值不固定。<br />$arr = array();<br />foreach($array1 as $v){<br />	$arr[] = in_array($v, $array2) ? $v : 0;<br />}<br />print_r($arr);
로그인 후 복사

------解决思路----------------------
引用
#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判断就不存在了,这里存在一点问题
------解决思路----------------------
php里面有个数组比较函数 array_diff的呀。
------解决思路----------------------
不错,可以借助 array_diff
$a = array("1","2","3","4","5","6");<br />$b = array("1","3","6","4");<br />$c = $a;<br />foreach(array_diff($a, $b) as $k=>$v) $c[$k] = 0;<br /><br />print_r($c);
로그인 후 복사
Array<br />(<br />    [0] => 1<br />    [1] => 0<br />    [2] => 3<br />    [3] => 4<br />    [4] => 0<br />    [5] => 6<br />)<br /><br />
로그인 후 복사

------解决思路----------------------
<br />$array1=array("1","2","3","4","5","6");//此数据值固定。<br />$array2=array("1","3","6","4");//此数据值不固定。<br />
$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
)

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿