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']`公平一点,这不是我的问题!但我没有看原始问题,现在检查了,你是对的,它被编辑了。