我已经构建了相当复杂的数组,其中包含带有用户邮件和"硬币"值的其他数组.我需要删除并计算重复的邮件并合并"硬币"值. Array ( [0] => Array ( [mail] => mail1@gmail.com [coins] => 25000.00 ) [1] => Array ( [mail] => mail2@gmail.com [coins] => 500000.00 ) [2] => Array ( [mail] => mail1@gmail.com [coins] => 10000.00 ) [3] => Array ( [mail] => mail2@gmail.com [coins] => 10000.00 ) [4] => Array ( [mail] => mail3@gmail.com [coins] => 20000.00 ) ) 因此,输出看起来像: mail1@gmail.com (2), 3
以下是关于 duplicates 的编程技术问答
stackoverflow中有一些类似的话题,但我仍然没有成功地重命名重复行: CREATE TABLE IF NOT EXISTS `products` ( `product_id` int(11) unsigned NOT NULL AUTO_INCREMENT, `product_code` varchar(32) NOT NULL, PRIMARY KEY (`product_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ; INSERT INTO `products` (`product_id`, `product_code`) VALUES (1, 'A'), (2, 'B'), (3, 'A'); 这里的第一行和第三行具有相同的项目.我只想添加一个后缀,例如"复制".结果是: product_id product_code ----------- --------------
我是PHP的新手,我花了几个小时研究并试图弄清楚我做错了什么.我正在加入几个表,以填充一个来自交易表中的多个交易的客户端配置文件页面.该页面的其余部分正在与预期的查询一起使用,但是在使用a while语句时,结果中的每个事务重复等于结果中的交易总数.例如,如果结果具有3个事务号(1、2、3),则while语句正在回荡" 1、1、1、2、2、2、3、3、3、3""而不是仅仅" 1、2,2, 3". 我知道这很简单,但是它让我把头发拔出来.请帮助: if(!isset($_GET['PeopleID'])){ header('Location: people.php'); die(); } else { if(!filter_var($_GET['PeopleID'], FILTER_VALIDATE_INT)){ header('Location: people.php'); die();
我有一个多维数组,如下: $arr = [ ['name' => 'John', 'age' => 10, 'gender' => 'male', 'info' => ''], ['name' => 'Jeniffer', 'age' => 12, 'gender' => 'female', 'info' => ''], ['name' => 'John', 'age' => 10, 'gender' => 'male', 'info' => ''] ]; 我想检测其中包含的阵列之一是重复的.如果是重复的数组,我想用"重复"附加信息索引. 例如,将逻辑应用于原始多维数组时,最终结果(输出)的样子: $arr = [ ['name' => 'John', 'age' => 10, 'gender' => 'male', 'info' => 'DUPLICATED'], ['name' => 'Jeniffer', 'age' =
我正在尝试从URL中删除重复的斜线.以下.htaccess规则: RewriteRule ^(.+)//+(.*)$ $1/$2 [L,NC,R=301] 在我的URL上不适用于以下网址: http://www.mp7.org/?site=69.com\\\\\\\\\\\\\\\\ .htaccess文件 #### mod_rewrite in use Options +FollowSymlinks RewriteEngine On 解决方案 此规则对 BackSlashes 不起作用.您必须添加带有后斜切的类似规则 RewriteRule ^(.+)\\\\+(.*)$ $1\\$2 [L,R] 如果要用(向前)斜线替换后斜线,请改用此规则 RewriteRule ^(.+)\\\\+(.*)$ $1/$2 [L,R] 并在请求末尾删除所有背部/斜线 RewriteRule ^(.*?)[/\\]+$ $1 [L,R]
我的数组具有以下结构: [ ["venue1" => 1, "venue2" => 2], ["venue1" => 3, "venue2" => 4], ["venue1" => 2, "venue2" => 1], ["venue1" => 5, "venue2" => 6], ] 我需要删除重复的"一对值",在这种情况下,行[0]和行[2]. 我尝试了该代码,但它不起作用(当然不是很优雅). foreach ( $compare_arr as $v1 ) { $key = array_search( intval($v1[venue1]), array_column( $compare_arr, 'venue2' ) ); if ( $key '' ) unset($compare_arr[$key]); } 解决方案 这是一种通过排序值形成中间阵列的方法.然后,您可以搜索以查找重复对删除.
我有两个桌子,例如以下 hotels ------ hotelID hotelName 第二个表 operators --------- opID opName opServices opHotelID 一个简短的解释:在第一张桌子中,我有很多酒店,这些酒店具有唯一的增量ID.第二张桌子包含所有为这家酒店提供其他服务的运营商.这里的OPID也是唯一的,但是Ophotelid存在多次,因为可能有很多运营商提供酒店. 现在,我要得到的是: 我想获取酒店名称和另一列(称为运营商),该专栏列出了所有提供酒店的运营商. 所以结果应该像这样... 123 - Hotel ABC - OP1,Op2,OP3 而不是这个... 123 - Hotel ABC - OP1 123 - HOtel ABC - OP2 123 - Hotel ABC - OP3 有没有办法在一个SQL查询中执行此操作,或者您将如何解决此问题?我目前正在从事搜索功能,目
当值未知时,是否有一种更简单的方法来获取具有相同值的所有数组键. 问题 array_unique是它返回唯一数组,因此找不到唯一的值. 也就是从这个数组中: Array ( [a]=>1000 [b]=>1 [c]=>1000 ) 我想得到这个 Array ( [a]=>1000 [c]=>1000 ) 另一种方法是,如果我能找到 lonely 值,然后是它们的键,然后使用array_diff 这是我到目前为止所拥有的,看起来很糟糕: $a = array( 'a' => 1000, 'b' => 1, 'c' => 1000 ); $b = array_flip( array_count_values( $a ) ); krsort( $b ); $final = array_keys( $a, array_shift( $b ) ); 更新 使用Paulo Freites的答案作为代码库,我可以轻松地工作,可维护和
我将下载按钮添加到WordPress网站,该按钮将查询我们的数据库,并将结果作为CSV提供. 一切都起作用,除了生产的CSV具有返回的每列的重复列. 我们已经检查了SQL查询,并且没有重复. 这是我们生成CSV的方式: $rows = //Call to SQL query function $fp = fopen('php://output', 'w'); fputcsv($fp, array_keys($rows)); foreach ($rows as $row) { fputcsv($fp, $row); } $filename = "EventResults.csv"; header('Content-Type: text/csv'); header("Content-Transfer-Encoding: Binary"); header("Content-disposition: attachment; filename=$filename"
有什么办法可以从下面的数组中删除连续的重复项,而仅保留第一个? 阵列如下所示: $a=array("1"=>"go","2"=>"stop","3"=>"stop","4"=>"stop","5"=>"stop","6"=>"go","7"=>"go","8"=>"stop"); 我想要的是包含一个数组: $a=array("1"=>"go","2"=>"stop","3"=>"go","7"=>"stop"); 解决方案 您可以做类似: 的事情 if(current($a) !== $new_val) $a[] = $new_val; 假设您没有操纵您可以使用current()之间的数组,这比每次检查count($a)-1> 的值更有效 其他解决方案 连续的重复?我不知道本地功能,但是这起作用.好了.认为我理解这是错误的.在我的功能中,7 =>" go"是6 =>" go"的重复,8 =>" stop"是新值...? functi
我需要与某些随机值一起填充数组,但是如果在数组中重复我的应用程序无法正常工作.因此,我需要编写脚本代码,以找到重复,并用其他值替换它们. 好的,例如我有一个数组: Replace duplicates with some other numbers which ones I'm able to specify. return $ArrayWithReplacedValues; } ?> 因此,结果应为具有替换重复值的阵列. 解决方案 您只能跟踪到目前为止看到的单词并随身携带. // words we've seen so far $words_so_far = array(
如何在PHP中检查重复的电子邮件地址,并可能会牢记Gmail的自动标签和标点符号? 例如,我希望将这些地址检测为重复: username@gmail.com user.name@gmail.com username+label@gmail.com user.name+label@gmail.com 尽管丹尼尔·A·怀特(Daniel A. user.name@gmail.com和username@gmail.com实际上是同一用户. 解决方案 $email_parts = explode('@', $email); // check if there is a "+" and return the string before $before_plus = strstr($email_parts[0], '+', TRUE); $before_at = $before_plus ? $before_
我想提出一种标准练习,以防止任何表都在重要的地方重复.在大多数情况下,重复是变量的组合,而不是一个.我的主要密钥只是每个字段的唯一ID,因此我无法使用它们.我一直在做的是首先查询表格,然后如果有问题组合的行数为0,则进行插入.但是,我已经阅读,应该可以在多个字段上设置一个唯一的钥匙以实现唯一性.插入忽略听起来很可能,但是,我需要在多个列上忽略它. 作为一个例子,在字段关注者和跟进的情况下,可以在表中有多个关注者,但只能是两者的组合. 任何人都可以首先建议语法以在多个字段上创建唯一的键,然后进行防止dupes的SQL插入查询?非常感谢. 解决方案 您可以简单地在这些列上创建一个多柱索引并执行唯一性:请参阅 http://dev.mysql.com/doc/refman/5.0/en/multiple-column-indexes.html . 例如,在带有列的表中id(唯一主键),colA和colB,您运行: ALTER TABLE table ADD UN
如何用一个newline替换多个连续的新线.彼此之间最多可能有20个新线.例如 James said hello\n\n\n\n Test\n Test two\n\n 应以: 最终 James said hello\n Test\n Test two\n 解决方案 尝试这个: $str = "Hello\n\n\n\n\nWorld\n\n\nHow\nAre\n\nYou?"; $str = preg_replace("/\n+/", "\n", $str); print($str); 其他解决方案 改进Marc B的答案: $fixed_text = preg_replace("\n(\s*\n)+", "\n", $text_to_fix); 应该匹配初始新线,然后至少一组任何数量的白线,然后是newline,然后用单个newline替换. 其他解决方案 $fixed_text = preg_replace("\n+", "\n
我有两个表.一个用于用户,一个用于帖子. 用户表具有以下字段: id, username, password, created_at, modified_at 帖子表具有以下字段: id, user_id, title, body, created_at, modified_at 当我使用以下查询时: SELECT * FROM `users` LEFT OUTER JOIN `posts` ON users.id=posts.user_id 并使用PDO获取结果: $sth = $this->$default_connection->prepare($query); $sth->execute(); $sth->fetchAll(PDO::FETCH_ASSOC); 返回的阵列覆盖所有列的所有列,如id, created_at, modified_at,例如: Array ( [0] => Array (