gpt4 book ai didi

php - 用php处理来自mysql的许多成员数据

转载 作者:行者123 更新时间:2023-11-30 01:29:39 25 4
gpt4 key购买 nike

我有一个数组,并且创建时间已按 AES 排序。

$list = array(0 => array('createtime' => 90,'message'=>'ad','user'=>'a'),
1 => array('createtime' => 91,'message'=>'ae','user'=>'b'),
2 => array('createtime' => 93,'message'=>'ae','user'=>'b'),
3 => array('createtime' => 93,'message'=>'ae','user'=>'c'),
4 => array('createtime' => 94,'message'=>'ah','user'=>'d'),
5 => array('createtime' => 99,'message'=>'ah','user'=>'a'),
6 => array('createtime' => 100,'message'=>'ah','user'=>'a'));

As you can see,maybe the array is from a sql table,what I want is to deal with these data,the result of array like this.

$list = array(0 => array('createtime' => 90,'message'=>'ad','user'=>'a'),
1 => array('createtime' => 91,'message'=>'ae+ae','user'=>'b'),
2 => array('createtime' => 93,'message'=>'ae','user'=>'c'),
3 => array('createtime' => 94,'message'=>'ah','user'=>'d'),
4 => array('createtime' => 99,'message'=>'ah+ah','user'=>'a'));

是的,你可能会发现5个相同用户数据的创建时间加起来。我想要的就是这样,将来可能包括更多的用户和更多的创建时间。我这样编码来处理它,但是当我更改数据(例如添加用户或更改用户等)时,它效果不佳。

 $diff = 0;
$count = 0;
$d = array();
$j = array();
for($i = 1;isset($list[$i]);){
if ($list[$i]['user'] != $list[$i-1-$count]['user']) {
if (!in_array($list[$i]['user'], $d)) {
$d[$diff] = $list[$i]['user'];
$j[$diff] = $i;
$count++;
$diff++;
$i++;
continue;
} else {
$i++;
$count++;
continue;
}
}
if($list[$i]['createtime'] - $list[$i-1-$count]['createtime'] < 5){
$list[$i-1-$count]['message'] = $list[$i-1-$count]['message'].'<br>'.$list[$i]['message'];
array_splice($list,$i,1);
} else if ($count == 0) {
$i++;
} else {
$i = $j[0] + 1;
$count = 0;
$diff = 0;
$d = array();
$j = array();
}
}

似乎有问题。那么我应该如何做才能满足我的要求。并且还应该考虑短创建时间之间的更多用户。谢谢。

最佳答案

那么,你正在追求这样的东西吗?

$list = array(0 => array('createtime' => 90,'message'=>'ad','user'=>'a'),
1 => array('createtime' => 91,'message'=>'ae','user'=>'b'),
2 => array('createtime' => 93,'message'=>'ae','user'=>'b'),
3 => array('createtime' => 93,'message'=>'ae','user'=>'c'),
4 => array('createtime' => 94,'message'=>'ah','user'=>'d'),
5 => array('createtime' => 99,'message'=>'ah','user'=>'a'),
6 => array('createtime' => 100,'message'=>'ah','user'=>'a'));

$out = array();

$prevUser = 0;
foreach($list as $key => $value){
if($value['user'] === $prevUser){
echo $value['user'], $prevUser, '<br>';
end($out);
$k = key($out);
$out[$k]['message'] .= $value['message'];
continue;
}
$out[] = $value;
$prevUser = $value['user'];

}
echo '<pre>';
print_r($out);

关于php - 用php处理来自mysql的许多成员数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17621101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com