我试图使classlist中的所有元素仅在与我和个人B相同时显示。例如,如果我的类位于位置1、2、5,并且我位于个人B的配置文件(位于类别9、1、8、17、3)中,则它将仅显示1,因为他们的classlist中都有1。
php - PHP仅在SQL中的元素相同时才回显用户的信息-LMLPHP
(来源:goawaymom.com
我试过一些方法,比如分解classlist并给所有的东西赋予它们自己的变量…似乎什么都不管用,我把所有的尝试都搞复杂了。
有人知道什么简单的方法吗?

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

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

上述代码仅在人a和b的classlist的顺序具有相同顺序的相同类时才显示classlist

最佳答案

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>';
}

关于php - PHP仅在SQL中的元素相同时才回显用户的信息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13526581/

10-10 13:02