按列对子数组进行分组,格式化组内其他列的值
在每个子数组由两列组成的给定数组中,任务的方法是按第二列对子数组进行分组并创建一个新数组,其中每个组的第一列的值用逗号连接,第二列的值作为第二个值。
例如,输入数组如下:
$array = [ ["444", "0081"], ["449", "0081"], ["451", "0081"], ["455", "2100"], ["469", "2100"] ];
应转换为:
array ( 0 => array ( 0 => '444,449,451', 1 => '0081', ), 1 => array ( 0 => '455,469', 1 => '2100', ), )
解决方案:
实现此目的的简单方法如下:
<code class="php">// Create an empty array to store the grouped data $groups = []; // Loop through the input array foreach ($array as $item) { // If the second column value is not yet a key in $groups, create an empty array for it if (!array_key_exists($item[1], $groups)) { $groups[$item[1]] = []; } // Add the first column value to the array at the corresponding key $groups[$item[1]][] = $item[0]; } // Initialize the new array with the desired structure $structured = []; // Loop through the groups foreach ($groups as $group => $values) { // Join the first column values with commas and add the group key as the second column $structured[] = [implode(',', $values), $group]; }</code>
该解决方案可以有效地处理转换,从而产生所需的输出。
以上是如何在 PHP 中对子数组进行分组并按列格式化值?的详细内容。更多信息请关注PHP中文网其他相关文章!