2024-08-30 21:22:12 | 我爱编程网
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
/**
* 根据某个值对数组中的元素进行分组
*/
function getGroupBySum($arr, $sum) {
$len = count($arr);
$result = [];
// for 1
for($i = 0; $i < $len; $i++) {
// for 2
for($j = 1; $j < $len - $i; $j++) {
$tmp = array_slice($arr, $i+1, $j);
array_unshift($tmp, $arr[$i]);
if(array_sum($tmp) == $sum) {
$result[] = $tmp;
}
}
//for 3
for($k = $i + 1; $k < $len; $k++) {
if(($arr[$i] + $arr[$k]) == $sum) {
$result[] = [$arr[$i], $arr[$k]];
}
}
}
return $result;
}
print_r(getGroupBySum($arr, 10));
打印结果:
Array
(
[0] => Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
)
[1] => Array
(
[0] => 1
[1] => 9
)
[2] => Array
(
[0] => 2
[1] => 8
)
[3] => Array
(
[0] => 3
[1] => 7
)
[4] => Array
(
[0] => 4
[1] => 6
)
)
函数getGroupBySum的算法解释:
我只能解释到这里了,剩下的只可意会。
---------------------------2017/2/16/19:45--------------
下班回去的途中,仔细思考了一下,我上面的函数还没有找到 1、2、7与1、3、6等等,所以它是错的。
我对题目的理解是:数组中任意个元素的和等于某个值,把这些元素组合找出来。
如果没有理解错题意的话,我写不出来这种算法,组合太多了。
我爱编程网
我爱编程网(https://www.52biancheng.com)小编还为大家带来php 有没数组所有键值同时加1的函数的相关内容。
function increment($num){uniqueidphp下判断数组中是否存在相同的值array_uniquearray_unique()函数在PHP中用于去除数组中的重复值,确保返回的新数组中不包含任何重复的元素。此函数保留数组中元素的键名不变,但在内部对值进行排序,仅保留首次遇到的键名。如果数组中的两个元素在字符串比较下相同,那么第一个元素将被保留。考虑以下实例:如果数组包含"a"=>"green","red"
php代码求数组平均值$a3 = array(array(11,12, 13),array(21,22,23, 24, 25),array(31,32,33, 35),array(41,42,43));$total = 0;foreach($a3 as $key=>$value){ $total += array_sum($value);}$num = count($a3,COUNT
php字符串与数组的相互转换php项目中,字符串与数组之间的相互转换也是比不可少的。在适当的时候合理的利用字符串与数组的转换,有利于更方便的对数据进行处理,可以大大书写程序的效率。下面我来介绍一下如何进行字符串与数组的转换先看下字符串如何转成数组,字符串转为数组用的是explode函数,explode(',',$mountain_str);第一个参数是分隔符,比如我这里就是以逗号分隔这个
如何把用php将数组输出为'','',''的字符串.$name = array('Tokyo','Beijin','Shanghai');$new= implode(',',$name);print $new;不知道你是不是这个意思,php中把数组转化成字符串php怎么将数组变成字符串使用PHPimplode函数:将数组元素组合为字符串。实现代码如下:PHPimplod
php数组函数$newarray=array();foreach($arrayas$varray){foreach($varrayas$k=>$v){if(($k=='性别'&&$v=='女')||($k=='年龄'&&$v>40))$newarray[]=$varray;}}print_r($newarray)
php有没数组所有键值同时加1的函数functionincrement($num){return$num+1;}$a=array('a'=>1,'b'=>2,'c'=>4,'d'=>7);$a=array_map("increment",$a);print_r($a);phparray_map+trim处理file()读取文件后每个数组末尾的控
php中统计数组的长度是那个函数?您好,你的问题,我之前好像也遇到过,以下是我原来的解决思路和方法,希望能帮助到你,若有错误,还望见谅!展开全部获取一维数组:count()和sizeof()都可以直接统计一维数组长度。示例如下:$arr=Array('0','1','2','3','4','5','6','7','8','9');echocount($arr);//输出10$
PHP处理数组常用的几个函数一、数组操作的基本函数数组的键名和值array_values($arr);获得数组的值array_keys($arr);获得数组的键名array_flip($arr);数组中的值与键名互换(如果有重复前面的会被后面的覆盖)in_array("apple",$arr);在数组中检索applearray_search("apple",$arr)
2025-02-01 20:24:39
2025-02-12 03:21:37
2025-02-10 15:19:48
2025-01-28 17:58:32
2024-11-22 05:08:01
2024-09-10 08:50:00