对多维数组中的行进行分组,并对每组中的 "计数 "元素进行求和
我有一系列的关联数组,我想按行将它们按A,B和C的值对它们进行分组,并总和每个组的count值. $array = [ ['A' => 'O', 'B' => 'O', 'C' => 1, 'count' => 1], ['A' => 'Test', 'B' => 'Test', 'C' => 1, 'count' => 1], ['A' => 'O', 'B' => 'O', 'C' => 1, 'count' => 1], ['A' => 'Test', 'B' => 'Test', 'C' => 1, 'count' => 1], ['A' => 'Test', 'B' => 'test1', 'C' => 2, 'count' => 1], ]; 我需要这样的结果: [ ["A" => "O", "B" => "O", "C" => 1, "count" => 2],
0 2023-06-01
编程技术问答社区
根据一个列的值对数据行进行分组
是否可以根据子阵列中的值进行对行分组? array Array ( [4f5hfgb] => Array ( [0] => ACME [1] => 4f5hfgb [2] => Aberdeen ) [sdf4ws] => Array ( [0] => ACME [1] => sdf4ws [2] => Birmingham ) [dfgdfg54] => Array ( [0] => EDNON [1] => dfgdfg54 [2] => Birmingham ) [345bfg] => Array ( [0] => EDNON [1] => 345bfg [2] => Birmingham ) [345fgfd] => Array ( [0] => VALVE [1] => 345fgfd [2] => Birmingham ) ) 是否可以在[0]中具有相同值的人? 所需的输出 Array ( [4f5hfgb] => Array (
0 2023-06-01
编程技术问答社区
将平面数组分成分组的子阵列,其中包含输入数组中连续键的值
我有一个来自array_diff函数的数组,看起来如下: Array ( [0] => world [1] => is [2] => a [3] => wonderfull [5] => in [6] => our ) 您可以看到,我们在键3和#5之间有差距(即没有键#4). 如果有更多差距,我该如何将该数组分为两个部分,或者可能需要更多? 预期的输出将是: Array ( [0] => Array ( [0] => world [1] => is [2] => a [3] => wonderfull ) [1] => Array ( [0] => in [1] => our )
0 2023-05-31
编程技术问答社区
基于列值的子数组
我有一个数组: [['a', 1], ['b', 1], ['c',2], ['d',2]] 如何基于第二列值分组子阵列: [[['a', 1], ['b', 1]], [['c',2], ['d',2]]] 我有一个想法可以用foreach解决这个问题,但是它可能具有内置功能? 用foreach的草图: $in = [['a', 1], ['b', 1], ['c',2], ['d',2]]; $out = []; foreach($in as $i) { $out[$i[1]][] = $i; } 解决方案 您或多或少都有我的解决方案. 只要您希望用作索引的数据始终在数组中处于相同的位置,您就可以像在收集器数组中一样进行编码索引. 如果不是,我会考虑转移到关联数组,并将名称分配给您要在创建数组时要用作索引的值. [['a', 'index'=>1] [etc...]] $out[$i[index]][] = $i;
0 2023-05-31
编程技术问答社区
我需要在一个csv列中获得一个数值的计数(分组)。
我需要计算第一列的值.这些ID可能在我收到的任何给定的.CSV文件中可能不存在.因此,我需要循环浏览第一个列的.CSV文件,如果我已经添加了它,则将其添加到保存数组($ PWSS)($ PWSS)($ PWSS)($ PWSS)($ PWSS),或者在此保存数组中添加计数. 我使用FGETCSV()有第一个循环.这用于划分到文件中: $PWSs = array(); $handle2 = fopen ($uploadfileandpath,"r"); while ($field2array = fgetcsv ($handle2, 130000, ",")) { // Here is where I would add value or increment $PWSs array while (?) { if ($field2array[0] != ?) { // Add or increment
0 2023-05-29
编程技术问答社区
如何合并3个数组,分组,并计算重复数?
我有三个相同长度的相关阵列包含产品详细信息. 我正在尝试将它们合并,对柱状数据进行分组(基于ID,大小和颜色),并保留每个唯一产品的运行计数. 我的代码: $a1 = array(1,1,1,2,5,1); $a2 = array("m","m","m","s","xl","s"); $a3 = array("color","color","color3","color1","color2","color1",); $temp = []; foreach($a1 as $index => $product_id) { $size = $a2[$index]; $colors = $a3[$index]; // if an entry for given product id and size combination already exists, then the current // counter value is incremen
0 2023-05-29
编程技术问答社区
按字母范围分组阵列元素
我有一个简单的数组,其中有一些名称,我想通过他们的第一个字母对它们进行分组. 例如.所有带有a至c的名称作为第一个字母在数组中,d to f to to to又一个字母. 有没有更好的方法比使用很多吗? 解决方案 我现在有四种方法可以提供.可以通过更改$size. 2创建" ab"," CD"等 3创建" ABC"," DEF"等 4创建" abcd"," efgh"等 15创建" abcdefghijklmno"," pqrstuvwxyz" 代码#1 通过使用2 foreach() loops和每个值的第一个字符进行比较来处理值.这是最容易理解的. $fruits=array("date","guava","lemon","Orange","kiwi","Banana","apple"); natcasesort($fruits); // pre-sort them for alphabetized output $size=3; //
0 2023-05-29
编程技术问答社区
按一列对数据行进行分组,并在每组中找到另一列的最大值
我有以下数组: $array = [ [2000, 401], [2000, 317], [2000, 301], [2002, 285], [2002, 277], [2002, 271], [2001, 208], [2001, 263], [2002, 285], [2001, 262], [2000, 258] ] 然后,我编写了以下代码将其值分组: $result06 = array(); foreach ($chart06 as $el) { if (!array_key_exists($el[0], $result06)) { $result06[$el[0]] = array(); } $result06[$el[0]][] = $el[1]; } 我们将收到以下结果: Array ( [2000] => Array
0 2023-05-29
编程技术问答社区
如何用PHP做SQL'的GROUP BY?
我想从数据库表中选择行,然后使用PHP而不是基于SQL进行分组(在这种情况下为项目). sql: Clothes table id item owner 1 shoes joe 2 pants joe 3 hat joe 4 pants joe 5 hat tom SELECT * from Clothes where owner='joe' 1 shoes joe 2 pants joe 3 hat joe 4 pants joe 这是我希望结果在使用PHP而不是SQL的GROUP BY item 之后看的结果. php: 1 shoes joe 2 pants joe //count 2 3 hat joe 我确定有一个PHP数组功能,我只是不熟
0 2023-05-29
编程技术问答社区
从while循环中对记录进行分组 | PHP
我正在尝试按照其优先级级记录,例如 ---优先:高--- 记录... ---优先级:中 - 记录... ---优先级:低--- 记录... 类似的事情,我该如何在PHP中做到这一点? while循环订单按具有int值的优先列列记录(高= 3,中= 2,low = 1).例如其中priority ='1' 标签:"优先级:[优先级]" 必须在分组记录上方设置有关其级别的记录 编辑: 喜欢那个代码 - 标签是标签,将记录分开有关其优先级. 解决方案 如果您确定结果是按优先级订购的,则像以下琐事一样琐碎: $priority = nu
0 2023-05-28
编程技术问答社区
PHP根据一个字段的值将数组拆分成若干组
我有一个包含名称和其他细节的数组,按字母顺序排列.每个数组都包含与名称相关的首字母. Array ( [0] => Array ( [0] => a [1] => Alanis Morissette ) [1] => Array ( [0] => a [1] => Alesha Dixon ) [2] => Array ( [0] => a [1] => Alexandra Burke ) [3] => Array ( [0] => b [1] => Britney Spears ) [4] => Array
0 2023-05-28
编程技术问答社区
组1D数组数据按值和原始密钥填充子阵列
我想组合所有相同值的键,并将值作为键 组合 样本数据: Array ( [825] => ca_knife_features [838] => ca_knife_features [795] => ca_knife_handle_materials [853] => ca_knife_handle_materials ) 所需结果: Array ( [ca_knife_features]=>array(825,838) [ca_knife_handle_materials]=>array(795,853) ) 我该怎么做? 解决方案 获取所有值的所有键都很容易. foreach ($array as $key => $value) { $result[$value][] = $key; } ,但这不仅可以得到重复的值.有不同的方法可以做到这一点.一种方法是将结果过滤以仅显示多个密钥的值. $r
0 2023-05-27
编程技术问答社区
如何对重复数据的数组值进行求和
我的数组具有与下面所示的相同ID值. [ {"ID":"126871","total":"200.00","currency":"USD","name":"John"}, {"ID":"126872","total":"2000.00","currency":"Euro","name":"John"}, {"ID":"126872","total":"1000.00","currency":"Euro","name":"John"}, {"ID":"126872","total":"500.00","currency":"USD","name":"John"}, {"ID":"126872","total":"1000.00","currency":"Euro","name":"John"}, ] 如果ID值是重复的,则将相同currency的总值总和.对于相同ID的不同currency,无需总和total. 这是我想要的.
2 2023-05-27
编程技术问答社区
如何用一个PHP循环在不同的表中显示分组数据?
我是phpmysqli的新手.这是我拥有的和要实现的目标:我将根据建议进行更新; 数据库示例数据 我想根据他们的SID在一个页面上显示带有单独表格的数据.这就是我到目前为止尝试过的; query('SELECT * FROM activitybook'); $students = []; foreach ( $results->fetch_array() as $activity ) { $students[$activity['sid']][] = $activity; } foreach($students as $sid=>$activities) { foreach($activities as $activity) { echo "
0 2023-05-27
编程技术问答社区
根据一个共同的列值将两个数组合并成一个数组
我试图在尊重它们的共享价值的同时结合两个数组. $array1 = array( array("id" => "1","name"=>"John"), array("id" => "2","name"=>"Peter"), array("id" => "3","name"=>"Tom"), array("id" => "12","name"=>"Astro") ); $array2 = array( array("id" => "1","second_name"=>"Lim"), array("id" => "2","second_name"=>"Parker"), array("id" => "3","second_name"=>"PHP") ); 我的预期输出: $result = array( array("id" => "1","name"=>"John","second_name"=>"Lim")
0 2023-05-27
编程技术问答社区
PHP根据相等的值将数组分割成若干组
我有一个包含2个值的数组,第一个是作者的数量,第二个是他的隶属关系. Array ( [0] => Array ( [0] => 2 [1] => Department of General Chemistry ) [1] => Array ( [0] => 3 [1] => Institute of Silicate Materials ) [2] => Array ( [0] => 4 [1] => Department of General Chemistry ) [3] => Array ( [0] => 5 [1] => Department of General Chemistr
0 2023-05-27
编程技术问答社区
基于共享列值的两个2D数组(每个共享列和唯一列)合并数据行
我有两个数组,必须在dt_date列上合并在一起,我需要在结果中的所有行中声明subscribers>和unsubscribers. $array1 = [ ['subscribers' => 2, 'dt_date' => '2014-02-27'], ['subscribers' => 2, 'dt_date' => '2014-02-25'], ['subscribers' => 1, 'dt_date' => '2014-02-07'] ]; $array2 = [ ['unsubscribers' => 1, 'dt_date' => '2014-02-27'], ['unsubscribers' => 1, 'dt_date' => '2014-02-01'] ]; 我需要创建一个如下的数组. [ ['subscribers' => 2, 'unsubscribers' => 1, 'dt_date' => '2
0 2023-05-27
编程技术问答社区
按一个列值对行数据进行分组,并在每个组中用另一个列值填充一个子数。
我想将数据与关联行分组.组应由type值确定,每个组中的所有label_id值应形成一个子阵列. 样本输入: $array = [ ['type' => 'AAA', 'label_id' => 'A1,35'], ['type' => 'AAA', 'label_id' => 'A2,34'], ['type' => 'BBB', 'label_id' => 'B1,29'], ['type' => 'CCC', 'label_id' => 'C1,20'], ['type' => 'CCC', 'label_id' => 'C2,19'], ['type' => 'CCC', 'label_id' => 'C3,18'] ]; 所需结果: [ [ 'type' => 'AAA', 'label_id' => [ 'A1,35',
0 2023-05-26
编程技术问答社区