在PHP中比较2个数组

时间:2015-03-30 12:05:43

标签: php arrays

我正在尝试为我的工作建立一个结果页面,但是我很不高兴了。

我有2个数组,需要进行比较:

$dienstarray[] = $compdiensten['dienst'];
$userdienstarray[] = $userdiensten['dienst_id'];

输出结果为:

$ dienstarray:

Array ( [0] => 8 [1] => 9 [2] => 11 [3] => 12 [4] => 13 [5] => 22 [6] => 23 [7] => 24 [8] => 26 [9] => 27 [10] => 7 [11] => 25 )

$ userdienstarray:

Array ( [0] => 7 [1] => 8 [2] => 9 )
$ dienstarray需要与$ userdienstarray进行比较,当数字匹配时,输出为V,当输出不匹配时,输出必须为X

所以在这个例子中:

8需要与$ userdienstarray进行比较,在这种情况下它是真的,因此返回了V.

9需要与$ userdienstarray进行比较,在这种情况下它是真的,所以返回了V.

11需要与$ userdienstarray进行比较,在这种情况下它是假的,因此返回X.

等等......

我希望你理解我的问题,如果不是,请问!

提前致谢!

4 个答案:

答案 0 :(得分:1)

你可以使用

  <?php
    $result = array_intersect($dienstarray, $userdienstarray);
    if(count($result) > 0 )
    echo 'V';
    else
    echo 'X';
    ?>

个人匹配试试这个

foreach ($dienstarray as $ar)
{
    if(in_array($ar, $userdienstarray))
    echo 'V';
    else 
    echo 'X';
}

答案 1 :(得分:0)

你的意思是,如果$ userdienstarray包含$ dienstarray中的值,那么X? 也许:

function compareArrays($dienstarray, $userdienstarray) {
    foreach ($dienstarray as $element) {
        if (in_array($element, $userdienstarray)) {
            return "V";
        }
    }
    return "X";
}

答案 2 :(得分:0)

这应该有效

$dienstarray[] = $compdiensten['dienst'];
$userdienstarray[] = $userdiensten['dienst_id'];
$result = 'X';
foreach ($dienstarray as $value) {
     if (in_array($value,$userdienstarray) {
         $result = 'V';
     }
}
echo $result;

答案 3 :(得分:0)

我会尝试更好地解释一下:

我们有多家公司,每家公司都拥有自己的用户。 在数据库中,我们有表comp_diensten和user_diensten 在comp_diensten表中,我们提供了允许公司使用的服务。 在user_diensten表中,我们拥有公司用户正在使用的服务。

这是我的代码:

<?php
	if(!isset($_SESSION['y_logged'])){ include('../includes/no_access.php'); die(); }
	$users = new users();
	$compID = $_GET['comp'];
	
	if($_SESSION['y_status'] < 2){
		$checkComp = $users->check_if_comp_is_mine($_SESSION['y_resid'],$compID);
		if($checkComp == 0){ echo '<meta http-equiv="refresh" content="'.REFRESH_DIRECT.';url='.$GLOBALS['site_info']['url'].'/beheer/bedrijven.html" />'; die(); }
	} else {
		$checkComp = $users->check_if_comp_exists($compID);
		if($checkComp == 0){ echo '<meta http-equiv="refresh" content="'.REFRESH_DIRECT.';url='.$GLOBALS['site_info']['url'].'/beheer/bedrijven.html" />'; die(); }
	}
	
	$rapportage = $users->comp_rapportage($_GET['comp']);
?>
<div id="content_top_menu" style="padding:5px;">Rapportage overzicht</div>
<?php
	if($rapportage != 0){
		foreach($rapportage AS $key=>$rapportage){
			$showusers = $users->show_compusers($rapportage['id']);
			$compdiensten = $users->check_diensten($rapportage['id']);
			$dienstarray = array();
?>
<div class="table_wrapper" style="background-color:#E9E9E9;font-size:14px;">
	<div class="table_medium" style="border-right:1px solid #9B9EA0;"><strong><?php echo $rapportage['naam']; ?></strong></div>
	<?php
		foreach($compdiensten AS $key=>$compdiensten){
			$dienstNaam = $users->get_dienstnaam($compdiensten['dienst']);
			$dienstarray[] = $compdiensten['dienst'];
	?>
	<div class="table_small" style="border-right:1px solid #9B9EA0;font-size:10px !important;width:6% !important;"><?php echo $dienstNaam['naam']; ?></div>
	<?php } ?>
</div>
<?php
	if($showusers == 0){
		echo 'Geen gebruikers gevonden';
	} else {
		foreach($showusers AS $key=>$showusers){
			$userdiensten = $users->check_userdiensten($showusers['id']);
			$userdienstarray = array();
			foreach($userdiensten AS $key=>$userdiensten){
				$userdienstarray[] = $userdiensten['dienst_id'];
			}
			// HERE we need the X or V
		}
	}
?>
<?php
	} } else {
?>
<div class="table_wrapper" style="background-color:#E9E9E9;font-size:14px;"><strong><?php echo $rapportage['naam']; ?></strong></div>
<?php } ?>
<div id="form_button_wrapper">
	<a href="<?php echo $GLOBALS['site_info']['url']; ?>/beheer/bedrijven.html" title="Ga terug naar klantenoverzicht" class="masterTooltip"><div class="form_submit_button">Terug</div></a>
</div>

我已经说: //这里我们需要X或V

在上面的代码中