【问题标题】:Php echo user's info only when elements are in common from sql仅当元素与 sql 相同时,php 才回显用户信息
【发布时间】:2012-11-23 09:53:47
【问题描述】:

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


(来源:goawaymom.com

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

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

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

上面的代码只在a和b的classlist的顺序相同的类的顺序相同时才显示classlist

【问题讨论】:

    标签: php sql database


    【解决方案1】:

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

    【讨论】:

    • 嗯,这是我一直在寻找的答案类型,但是共享课程“你有共享课程”和“你没有”似乎都不起作用......它总是认为我有共享课程。
    【解决方案2】:

    如果我理解你是正确的,也许这会起作用

    // $_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 );
    

    【讨论】:

      猜你喜欢
      • 2021-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-24
      • 1970-01-01
      • 2017-02-13
      相关资源
      最近更新 更多