php加入了类似的结果

php加入了类似的结果,php,mysql,Php,Mysql,我正在构建一个php通知系统(有点像facebook) 它的工作原理应该是,以我想要的方式列出所有事件。但我试图让它明白,如果它在同一篇文章中获得3+个事件,它将把这些事件合并到一个通知中 现在看起来是这样的: User 1 wrote on article-x User 2 wrote on article-x user 3 wrote on article-x user 1 wrote on article-y Array ( [article-x] => Array

我正在构建一个php通知系统(有点像facebook)

它的工作原理应该是,以我想要的方式列出所有事件。但我试图让它明白,如果它在同一篇文章中获得3+个事件,它将把这些事件合并到一个通知中

现在看起来是这样的:

User 1 wrote on article-x
User 2 wrote on article-x
user 3 wrote on article-x
user 1 wrote on article-y
Array
(
    [article-x] => Array
                   (
                       [0] => User1
                       [1] => User2
                   )
    [article-y] => Array
                   (
                       [0] => User1
                   )
)
$events = array();
foreach( $result as $row ) {
    if( isset($events[$row['article']) ){
        $events[$row['article']]['counter']++;
    }else{
        $row['counter'] = 0;
        $events[$row['article']] = $row;
    }
}

foreach( $events as $event ){
    echo "<div id='commentnote'>{$event['user']}".($event['counter']?' and '.$event['counter'].' others':'')." wrote on {$event['article']}</div>";
}
相反,我希望它像这样打印:

user 1 and  2 others wrote on article-x
我一直在努力了解我需要做什么,但运气不好。非常感谢您的指点。 它的查询方式如下:

User 1 wrote on article-x
User 2 wrote on article-x
user 3 wrote on article-x
user 1 wrote on article-y
Array
(
    [article-x] => Array
                   (
                       [0] => User1
                       [1] => User2
                   )
    [article-y] => Array
                   (
                       [0] => User1
                   )
)
$events = array();
foreach( $result as $row ) {
    if( isset($events[$row['article']) ){
        $events[$row['article']]['counter']++;
    }else{
        $row['counter'] = 0;
        $events[$row['article']] = $row;
    }
}

foreach( $events as $event ){
    echo "<div id='commentnote'>{$event['user']}".($event['counter']?' and '.$event['counter'].' others':'')." wrote on {$event['article']}</div>";
}
用完整代码编辑

$sesname=$\u会话['user\u name'];
$sesid=$\u会话['full\u name'];
$dbh=newpdo(“mysql:host=$hostname;dbname=$db”,$username,$password);
$stmt=$dbh->prepare(“从注释中选择*,其中全名=“$sesid”和选中的“'1”);
$stmt->bindParam(':full_name',$safe_name,PDO::PARAM_INT,5);
$stmt->execute();
$result=$stmt->fetchAll();
foreach($结果为$行){
$name=$row['name'];
$pid=$row['pid'];
$commentid=$row['id'];
$fullink=$row['fullink'];
$datetime=$row['dt'];
如果($name==$sesname){
}否则{
echo“kommenterte ditt
x”; } }

尝试在下面使用你的答案,但没有运气。谢谢你的回答,我真的很感激:)

也许你可以创建这样一个二维数组:

User 1 wrote on article-x
User 2 wrote on article-x
user 3 wrote on article-x
user 1 wrote on article-y
Array
(
    [article-x] => Array
                   (
                       [0] => User1
                       [1] => User2
                   )
    [article-y] => Array
                   (
                       [0] => User1
                   )
)
$events = array();
foreach( $result as $row ) {
    if( isset($events[$row['article']) ){
        $events[$row['article']]['counter']++;
    }else{
        $row['counter'] = 0;
        $events[$row['article']] = $row;
    }
}

foreach( $events as $event ){
    echo "<div id='commentnote'>{$event['user']}".($event['counter']?' and '.$event['counter'].' others':'')." wrote on {$event['article']}</div>";
}

也许您可以创建一个二维数组,如下所示:

User 1 wrote on article-x
User 2 wrote on article-x
user 3 wrote on article-x
user 1 wrote on article-y
Array
(
    [article-x] => Array
                   (
                       [0] => User1
                       [1] => User2
                   )
    [article-y] => Array
                   (
                       [0] => User1
                   )
)
$events = array();
foreach( $result as $row ) {
    if( isset($events[$row['article']) ){
        $events[$row['article']]['counter']++;
    }else{
        $row['counter'] = 0;
        $events[$row['article']] = $row;
    }
}

foreach( $events as $event ){
    echo "<div id='commentnote'>{$event['user']}".($event['counter']?' and '.$event['counter'].' others':'')." wrote on {$event['article']}</div>";
}

将文章转换为多维数组怎么样?(举个例子,结构不是最优的,因为我不知道您拥有和需要什么样的数据。)


将文章转换为多维数组怎么样?(举个例子,结构不是最优的,因为我不知道您拥有和需要什么样的数据。)


如果要在PHP中执行此操作,请执行以下操作:

User 1 wrote on article-x
User 2 wrote on article-x
user 3 wrote on article-x
user 1 wrote on article-y
Array
(
    [article-x] => Array
                   (
                       [0] => User1
                       [1] => User2
                   )
    [article-y] => Array
                   (
                       [0] => User1
                   )
)
$events = array();
foreach( $result as $row ) {
    if( isset($events[$row['article']) ){
        $events[$row['article']]['counter']++;
    }else{
        $row['counter'] = 0;
        $events[$row['article']] = $row;
    }
}

foreach( $events as $event ){
    echo "<div id='commentnote'>{$event['user']}".($event['counter']?' and '.$event['counter'].' others':'')." wrote on {$event['article']}</div>";
}
$events=array();
foreach($结果为$行){
如果(isset($events[$row['article'])){
$events[$row['article']['counter']++;
}否则{
$row['counter']=0;
$events[$row['article']]=$row;
}
}
foreach($events作为$event){
echo“{$event['user']}”。($event['counter']?”和“$event['counter']。”其他“:”。”写在{$event['article']}上;
}

如果要在PHP中执行此操作,请执行以下操作:

User 1 wrote on article-x
User 2 wrote on article-x
user 3 wrote on article-x
user 1 wrote on article-y
Array
(
    [article-x] => Array
                   (
                       [0] => User1
                       [1] => User2
                   )
    [article-y] => Array
                   (
                       [0] => User1
                   )
)
$events = array();
foreach( $result as $row ) {
    if( isset($events[$row['article']) ){
        $events[$row['article']]['counter']++;
    }else{
        $row['counter'] = 0;
        $events[$row['article']] = $row;
    }
}

foreach( $events as $event ){
    echo "<div id='commentnote'>{$event['user']}".($event['counter']?' and '.$event['counter'].' others':'')." wrote on {$event['article']}</div>";
}
$events=array();
foreach($结果为$行){
如果(isset($events[$row['article'])){
$events[$row['article']['counter']++;
}否则{
$row['counter']=0;
$events[$row['article']]=$row;
}
}
foreach($events作为$event){
echo“{$event['user']}”。($event['counter']?”和“$event['counter']。”其他“:”。”写在{$event['article']}上;
}