考虑以下数组作为输入:
$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/