php如何在一个数组中连接两个数组
我有以下包含2个元素的数组: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]=>
$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.,'$大小;->注意逗号。非常感谢你的帮助。。我会选择它作为最佳答案,因为我的阵列不能总是颜色和大小。因此,这种方式使它更具动态性。非常感谢您的帮助。。我会选择它作为最佳答案,因为我的阵列不能总是颜色和大小。因此,这种方式使它更具动态性。