php – 如何制作数组值对?

考虑以下数组作为输入:

$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++) {

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...