php - 如何制作成对的数组值?

标签 php arrays algorithm

考虑以下数组作为输入:

$input = array('A', 'B', 'C', 'D');

我正在寻找一种方法来循环遍历此数组,记下每对可能的两个值。在这个例子中:AB AC AD BC BD CD。请注意,BA 不算作一对,因为已经提到了 AB:

$output = array(
  'A' => 'B',
  'A' => 'C',
  'A' => 'D',
  'B' => 'C',
  'B' => 'D'
);

如有任何关于如何开始的意见,我们将不胜感激!

最佳答案

$output=array();
for ($i=0;$i<sizeof($input);$i++) {
  $k=$input[$i];
  for ($j=$i+1;$j<sizeof($input);$j++) {
    $v=$input[$j];
    $output[]=array($k=>$v);
  }
}

编辑

根据您的评论,重组后的输出

$output=array();
//See below
for ($i=0;$i<sizeof($input);$i++) {
  $k=$input[$i];
  $v=array();
  for ($j=$i+1;$j<sizeof($input);$j++) {
    $v[]=$input[$j];
  }
  $output[]=array($k=>$v);
}

这会给你 'D'=>Array() 作为最后一行,如果你不想要 hti 你必须改变

for ($i=0;$i<sizeof($input);$i++) {

for ($i=0;$i<sizeof($input)-1;$i++) {

关于php - 如何制作成对的数组值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9176291/

相关文章:

java - byte[] 不会解析为图像

c - 将文件映射到结构数组的有效方法是什么?

php - 在 Doctrine 2 中加载/保存字段时透明地执行 SQL 函数

php - 如何通过 stripe checkout 传递账单明细

c++ getline()在读取int数组的文件中使用时循环?

algorithm - 从一组给定的数字中总计为给定数字的所有可能的操作组合

algorithm - 有效地生成具有排序限制的排列(可能没有回溯)?

c - 如何找到每个大小为 n 的 m 个数组的最长公共(public)子数组?

php - MySQL - 我有空格问题

PHP:preg_replace 吃掉所有内存