php如何在一个数组中连接两个数组

php如何在一个数组中连接两个数组,php,arrays,loops,foreach,associative-array,Php,Arrays,Loops,Foreach,Associative Array,我有以下包含2个元素的数组: $attribute_metric = array(2) { [0]=> array(2) { [0]=> string(5) "white" [1]=> string(6) " Black" } [1]=> array(3) { [0]=> string(1) "S" [1]=> string(2) " L" [2]=>

我有以下包含2个元素的数组:

$attribute_metric = array(2) 
{
  [0]=>
  array(2) {
    [0]=>
    string(5) "white"
    [1]=>
    string(6) " Black"
  }
  [1]=>
  array(3) {
    [0]=>
    string(1) "S"
    [1]=>
    string(2) " L"
    [2]=>
    string(2) " M"
  }
}
我想用一种方式连接它的元素,我得到一个有6个元素的数组

array(6) {
  [0]=>
  string(8) "white, S"
  [1]=>
  string(8) "white, L"
  [2]=>
  string(8) "white, M"
  [3]=>
  string(8) "Black, S"
  [4]=>
  string(8) "Black, L"
  [5]=>
  string(8) "Black, M"
 }
我尝试了以下方法,但无效:

$size = 1;
foreach ($attribute_metric as $key => $value) {
    $size = $size * sizeof($value);
}
foreach ($attribute_metric as $key => $value) {
    if($key > 0){
        foreach ($attribute_metric[0] as $subkey => $subvalue) {
            array_push($subvalue,$value);   
        }
    }
}
结果

Array
(
    [0] => white, S
    [1] => white, L
    [2] => white, M
    [3] => black, S
    [4] => black, L
    [5] => black, M
)
结果

Array
(
    [0] => white, S
    [1] => white, L
    [2] => white, M
    [3] => black, S
    [4] => black, L
    [5] => black, M
)

如果原始数组不是太大,那么使用嵌套循环可以生成所需的输出

$colours=array('white','black');
$sizes=array('s','m','l');

$out=array();
foreach( $colours as $colour ){
    foreach( $sizes as $size ){
        $out[]=$colour.', '.$size;
    }
}
print_r( $out );

如果原始数组不是太大,那么使用嵌套循环可以生成所需的输出

$colours=array('white','black');
$sizes=array('s','m','l');

$out=array();
foreach( $colours as $colour ){
    foreach( $sizes as $size ){
        $out[]=$colour.', '.$size;
    }
}
print_r( $out );
试试这个

<?php
$list = array(array('white','Black'), array('S','L','M'));
$result = array();
foreach ($list[0] as $k) {
    foreach ($list[1] as $t) {
        $result[] = $k.','.$t;
    }
}
var_dump($result);
?>
试试这个

<?php
$list = array(array('white','Black'), array('S','L','M'));
$result = array();
foreach ($list[0] as $k) {
    foreach ($list[1] as $t) {
        $result[] = $k.','.$t;
    }
}
var_dump($result);
?>

为了完整起见,如果您只想使用数组函数执行此操作:

$output = array_reduce(array_map(function($a) use($attribute_metric) {
            return array_map(function($b) use($a) { return $a . ', ' . $b; }, $attribute_metric[1]);
}, $attribute_metric[0]), 'array_merge', []);

为了完整起见,如果您只想使用数组函数执行此操作:

$output = array_reduce(array_map(function($a) use($attribute_metric) {
            return array_map(function($b) use($a) { return $a . ', ' . $b; }, $attribute_metric[1]);
}, $attribute_metric[0]), 'array_merge', []);

$resultArray[]=$color.,'$大小;->注意逗号。$resultaray[]=$color.,'$大小;->注意逗号。非常感谢你的帮助。。我会选择它作为最佳答案,因为我的阵列不能总是颜色和大小。因此,这种方式使它更具动态性。非常感谢您的帮助。。我会选择它作为最佳答案,因为我的阵列不能总是颜色和大小。因此,这种方式使它更具动态性。