Php 使用2个数组创建对,以便没有重复的对?

Php 使用2个数组创建对,以便没有重复的对?,php,php-7,Php,Php 7,我正在尝试创建一个脚本,从两个不同的数组创建对。例如,下面给出了两个数组: <?php //Array 1 $arr1 = array('A', 'B', 'C', 'D'); //Array 2 $arr2 = array('X', 'Y', 'Z'); **注意:2个数组可能因计数和值的数量不同而不同。我认为没有内置的支持。 您需要循环嵌套的数组并构建一个结果数组 $arr1 = array('A', 'B', 'C', 'D'); $arr2 = a

我正在尝试创建一个脚本,从两个不同的数组创建对。例如,下面给出了两个数组:

<?php
    //Array 1
    $arr1 = array('A', 'B', 'C', 'D');
    //Array 2
    $arr2 = array('X', 'Y', 'Z');

**注意:2个数组可能因计数和值的数量不同而不同。

我认为没有内置的支持。
您需要循环嵌套的数组并构建一个结果数组

$arr1 = array('A', 'B', 'C', 'D');
$arr2 = array('X', 'Y', 'Z');

foreach($arr1 as $item1){
    foreach($arr2 as $item2){
        $res[] = [$item1, $item2];
    }
}

var_dump($res);

我认为没有内置的支持。
您需要循环嵌套的数组并构建一个结果数组

$arr1 = array('A', 'B', 'C', 'D');
$arr2 = array('X', 'Y', 'Z');

foreach($arr1 as $item1){
    foreach($arr2 as $item2){
        $res[] = [$item1, $item2];
    }
}

var_dump($res);
这是我的。可以通过

//Array 1
$arr1 = array('A', 'B', 'C', 'D');
//Array 2
$arr2 = array('X', 'Y', 'Z');

$output = array();

foreach($arr1 as $i1){
    foreach ($arr2 as $i2) {
        $output[] = array($i1, $i2);
    }
}

echo json_encode($output);
如果您希望输出的顺序与上面提到的相同,那么下面的步骤应该可以做到这一点

$newoutput = array();

$x = 0;
$y = 0;
for($i = 1; $i <= (count($arr1) * count($arr2)); $i++){
    $newoutput[] = array($arr1[($x % count($arr1))], $arr2[($y % count($arr2))]);
    $x++;
    $y++;
}

echo "<br />", json_encode($newoutput);
$newoutput=array();
$x=0;
$y=0;
对于($i=1;$i0

而言,这是可以通过

//Array 1
$arr1 = array('A', 'B', 'C', 'D');
//Array 2
$arr2 = array('X', 'Y', 'Z');

$output = array();

foreach($arr1 as $i1){
    foreach ($arr2 as $i2) {
        $output[] = array($i1, $i2);
    }
}

echo json_encode($output);
如果您希望输出的顺序与上面提到的相同,那么下面的步骤应该可以做到这一点

$newoutput = array();

$x = 0;
$y = 0;
for($i = 1; $i <= (count($arr1) * count($arr2)); $i++){
    $newoutput[] = array($arr1[($x % count($arr1))], $arr2[($y % count($arr2))]);
    $x++;
    $y++;
}

echo "<br />", json_encode($newoutput);
$newoutput=array();
$x=0;
$y=0;
对于($i=1;$i 0

请尝试此选项(如果找到,将对同一对进行排序):

尝试此选项(如果找到,将对同一对进行排序):


这是一个以相同顺序输出唯一值的示例:

在线评估:


这是一个以相同顺序输出唯一值的示例:

在线评估:


为什么要重新发明轮子?为什么要重新发明轮子?嗨,罗密欧,你的代码工作很好,但是在这个数组重复时检查你的代码。
$arr1=array('X','Y');$arr2=array('A','B','C','D','E','F','G','I','J','K'))
。谢谢!我已经解决了这个问题,也非常感谢您的帮助。@AjayKumar如果您愿意,您可以更新这个问题以反映您的改进,以便将来阅读此问题的任何人都会受益…:)嗨,罗密欧,您的代码工作正常,但请使用此数组检查您的代码,因为它正在重复
$arr1=array('X',Y'))$arr2=array('A','B','C','D','E','F','G','I','J','K');
。谢谢!我已经解决了这个问题,也非常感谢您的帮助。@AjayKumar如果您愿意,您可以更新这个问题以反映您的改进,以便将来阅读此问题的任何人都会受益……)