Php 如何循环数组A,使其所有值都具有数组B中的每个值?

Php 如何循环数组A,使其所有值都具有数组B中的每个值?,php,arrays,Php,Arrays,在下面这个例子中 //Array A $arrayA = [ 'a', 'b', 'c' ]; //Array B $arrayB = [ 'x', 'y', 'z' ]; 如果我想得到这样的最终组合数组,如何循环这两个数组 $combinedArray = [ ['a','x'], ['a','y'], ['a','z'], ['b','x'], ['b','y'], ['b','z'],

在下面这个例子中

//Array A

$arrayA = [
   'a',
   'b',
   'c'
];

//Array B

$arrayB = [
   'x',
   'y',
   'z'
];
如果我想得到这样的最终组合数组,如何循环这两个数组

$combinedArray = [
     ['a','x'],
     ['a','y'],
     ['a','z'],
     ['b','x'],
     ['b','y'],
     ['b','z'],
     ['c','x'],
     ['c','y'],
     ['c','z']
];
正如上面的输出所示,数组A的每个元素都有一个数组B的元素

这是我的解决办法

$combined = [];
foreach ($arrayA as $a) {
 for ($i=0; $i < sizeof($arrayB); $i++) {
       $combined[] = [
          $a,
          $arrayB[$i]
        ];
   }
}
$combined=[];
foreach(arrayA作为$a){
对于($i=0;$i
首先迭代
$arrayA
,然后在该循环中,迭代
$arrayB
。在
$arrayB
的循环中,创建
$combinedArray
键/值对并按下:

$combinedArray= [];
foreach($arrayA as $a){
  foreach($arrayB as $b) {
  $combinedArray[] = [$a,$b];
 }
  
}
JS POC:

const arrayA=[
“a”,
“b”,
“c”
];
//阵列B
常数arrayB=[
“x”,
“y”,
“z”
];
组合阵列=[];
arrayA.forEach((a)=>{
数组b.forEach((b)=>{
log(`[“${a}”、“${b}”]`);
组合阵列推力([a,b]);
})
});

//控制台日志(组合阵列)最简单的选择是第二次使用
foreach

$arrayA = ['a','b','c'];

$arrayB = ['x','y','z'];

$combined = []; // Ready for output
foreach($arrayA as $a){ // Loop through elements in first array
    foreach($arrayB as $b){ // Loop through elements in second array
        $combined[] = [$a, $b]; // Add combination to output array
    }
}

// OUTPUT
// $combined = [["a","x"],["a","y"],["a","z"],["b","x"],["b","y"],["b","z"],["c","x"],["c","y"],["c","z"]];

这将完成以下工作:

$arrayA = [
   'a',
   'b',
   'c'
];

//Array B

$arrayB = [
   'x',
   'y',
   'z'
];
$combinedArray = [array()];
$count =0;
for($i=0;$i<count($arrayA);$i++){
    for($e=0;$e<count($arrayB);$e++){
        $combinedArray[$count] = [$arrayA[$i],$arrayB[$e]];
        $count++;
    }
}
print_r($combinedArray);
$arrayA=[
“a”,
“b”,
“c”
];
//阵列B
$arrayB=[
“x”,
“y”,
“z”
];
$combinedArray=[array()];
$count=0;

对于($i=0;$i),这也可以使用PHP的标准数组函数来完成

$arrayA = [ 'a','b','c' ];

$arrayB = [ 'x','y','z' ];

$combined = [];

 foreach ($arrayA as $item ) {
    $temp =  array_map( function ( $a, $b ){
       return [ $a, $b ]; 
    } , array_fill( 0, \count( $arrayB ), $item ) , $arrayB);   

    $combined = array_merge( $combined, $temp );
 }
var_dump($combined);

这不会产生所需的输出?它会创建
$key=>$value
对并将它们推送到一个数组中…输出看起来像
$combinedaray=[0=>[“a”=>“x”]、1=>[“a”=>“y”]、…]
而不是
$combinedArray=[“a”、“x”]、[“a”、“y”…]
@Steven检查更新的答案,您只需更改将变量添加到combinedArray@Steven你原来的问题也要求“['b'=>'y']`公平一点,这不是我的问题!但我没有看原始问题,现在检查了,你是对的,它被编辑了。