我有一个由7个数字组成的数组(1,2,3,4,5,6,7),我想制作5个数字对,例如(1,2,3,4,5),(1,2,3
,4,6,),(1,2,3,4,7)。(1,2,3,4,5)等于(4,5,3,1,2)
我想知道PHP中是否有函数或任何可以执行此操作的算法?我不知道从哪里开始。你能帮助我吗 ?
我想将7个给定数字的所有组合(它们从数组中取出)放入5个插槽中,而无视顺序
如果链接断开,这里是代码。
class Combinations implements Iterator
{
protected $c = null;
protected $s = null;
protected $n = 0;
protected $k = 0;
protected $pos = 0;
function __construct($s, $k) {
if(is_array($s)) {
$this->s = array_values($s);
$this->n = count($this->s);
} else {
$this->s = (string) $s;
$this->n = strlen($this->s);
}
$this->k = $k;
$this->rewind();
}
function key() {
return $this->pos;
}
function current() {
$r = array();
for($i = 0; $i < $this->k; $i++)
$r[] = $this->s[$this->c[$i]];
return is_array($this->s) ? $r : implode('', $r);
}
function next() {
if($this->_next())
$this->pos++;
else
$this->pos = -1;
}
function rewind() {
$this->c = range(0, $this->k);
$this->pos = 0;
}
function valid() {
return $this->pos >= 0;
}
protected function _next() {
$i = $this->k - 1;
while ($i >= 0 && $this->c[$i] == $this->n - $this->k + $i)
$i--;
if($i < 0)
return false;
$this->c[$i]++;
while($i++ < $this->k - 1)
$this->c[$i] = $this->c[$i - 1] + 1;
return true;
}
}
foreach(new Combinations("1234567", 5) as $substring)
echo $substring, ' ';
12345 12346 12347 12356 12357 12367 12456 12457 12467 12567 13456 13457 13467
13567 14567 23456 23457 23467 23567 24567 34567
问题内容: 我有以下数组 如何将数组分组?是否有任何本地php函数可用于执行此操作? 如果我以上所述,那么我将得到一个副本,我该如何避免呢? 在上面的示例中有2个项目,因此它需要位于中。 编辑:一切正常:可以用一个步骤实现相同的目的吗? 问题答案: 没有本机的,只需使用循环即可。
主要内容:实例,数组是什么?,在 PHP 中创建数组,PHP 数值数组,实例,获取数组的长度 - count() 函数,实例,遍历数值数组,实例,PHP 关联数组,实例,遍历关联数组,实例,多维数组,完整的 PHP Array 参考手册数组能够在单个变量中存储多个值: 实例 <?php $cars=array("Volvo","BMW","Toyota"); echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".
问题内容: 如何在PHP中合并n个数组 我的意思是我怎么可以这样做的工作: OR 里面有多个数组的数组在哪里,像这样: 我的结果是: 我需要的是 问题答案: array_merge可以接受可变数量的参数,因此,使用一些call_user_func_array技巧,您可以将数组传递给它: 基本上可以像输入以下内容一样运行: 更新: 现在有了5.6,我们有了运算符来将数组解压缩为参数,因此您可以: 并
问题内容: 我有一个问题困扰了一段时间(头冷也无济于事!),基本上我有一个PHP数组,看起来像下面的例子: 而且我希望能够由此生成一个表格,其中包含这些表格的所有可能组合,但无需重复任何组合(无论其位置如何),因此例如 但是我希望它能够处理尽可能多的不同数组。 问题答案: 这称为“笛卡尔积”,数组http://php.net/manual/en/ref.array.php上的php手册页显示了一些
问题内容: 我已经搜索了SO,但是找不到答案。我的PHP脚本正在通过http发布接收一些JSON,如下所示: 如您所见,这里有3个项目,但是当我将它变成一个PHP数组对象并计算项目时,我返回1,应该为3,这是我的PHP代码: 并打印出“ 1”而不是“ 3”。 问题答案: 尝试 通常,如果您想知道变量值的结构是什么,请执行 在替代品,如这个功能的优势,并是,它打印的PHP代码(并因此被人谁了解PHP
主要内容:PHP - 数组排序函数,sort() - 对数组进行升序排列,实例,实例,rsort() - 对数组进行降序排列,实例,实例,asort() - 根据数组的值,对数组进行升序排列,实例,ksort() - 根据数组的键,对数组进行升序排列,实例,arsort() - 根据数组的值,对数组进行降序排列,实例,krsort() - 根据数组的键,对数组进行降序排列,实例,完整的 PHP Array 参考手册数组中的元素可以按字母或数字顺序进行降序或升序排列。 PHP - 数组排序函数 在