3

我试图使所有元素classlist仅在与我和人 b 相同时才显示。例如,如果我在位置 1、2、5 有课程,并且我在人 b 的个人资料中,他在 9、1、8、17、3 类中,它只会显示 1,因为他们都有 1classlist


(来源:goawaymom.com

我已经尝试了一些事情,比如爆炸classlist并给所有东西自己的变量......似乎没有任何效果,我让我尝试的一切变得复杂。有谁知道任何简单的方法来做到这一点?

<?php
if ($_SESSION['classlist'] == $user_info['classlist']) {
echo ($user_info['classlist']);

} else {
    echo 'No Common Classes';
}
?>

上面的代码只显示了classlistclasslist人 a 和 b 的顺序具有相同的类的相同顺序时。

4

2 回答 2

3

array_intersect

例如:

// fetch your results from the database
$myclasses = explode(',', $myrow['classlist']);
$theirclasses = explode(',', $theirrow['classlist']);

$common_classes = array_intersect($myclasses, $theirclasses);

或者在您的情况下:(假设 $_SESSION['classlist'] 和 $user_info['classlist'] 都是包含逗号分隔数字的字符串:'1,2,3,4,5')

$myclasses = explode(',', $_SESSION['classlist']);
$theirclasses = explode(',', $user_info['classlist']);
$common_classes = array_intersect($myclasses, $theirclasses);

if (count($common_classes) > 0)
{
    echo '<p>You have the following classes in common.</p>';
    echo '<ul>';
    foreach ($common_classes as $class)
    {
        echo '<li>' . $class . '</li>';
    }
    echo '</ul>';
}
else
{
    echo '<p>Billy no mates :(</p>';
}
于 2012-11-23T09:57:05.823 回答
0

If I am understanding you correct maybe this would work

// $_SESSION[ 'classlist' ] = 9,1,8,17,3,
// $user_info[ 'classlist' ] = 1,2,5

$a_session = explode( ",", $_SESSION[ 'classlist' ]);
$a_user_info = explode( ",", $user_info[ 'classlist' ]);
$common_classes = array();

foreach( $a_session as $key => $value )
{
    if( isset($value)===TRUE && $value != NULL && trim($value) != '' )
    {
        if( in_array( $value, $a_user_info ) === TRUE )
        {
            $k = array_search( $value, $a_user_info);
            $common_classes[] = $a_user_info[ $k ];
        }
    }
}

var_dump( $common_classes );
于 2012-11-23T10:10:42.130 回答