如何动态组合php中的数组?
How to combine array in php to dynamically?
我有这样的代码
$a =[
[1,2],
[4,6],
[10,24]
];
我想要这样的输出
Array
(
[0] => 1
[1] => 2
[2] => 4
[3] => 6
[4] => 10
[5] => 24
)
我使用这样的代码
print_r(array_merge($a[0],$a[1],$a[2]));
如果有这样的代码并且有更多数据
Array
(
[0] => Array
(
[0] => 1
[1] => 2
)
[1] => Array
(
[0] => 4
[1] => 6
)
[2] => Array
(
[0] => 10
[1] => 24
)
.
.
.
[60] => Array
[0] => 67
[1] => 8
)
这样写不好
print_r(array_merge($a[0],$a[1],$a[2],...,...,...,$a[58]));
动态里面怎么用array_merge
?
您可以使用以下功能。
function func($array) {
$result = array();
foreach ($array as $key => $value) {
if (is_array($value)) {
$result = array_merge($result, func($value));
}
else {
$result[$key] = $value;
}
}
return $result;
}
尝试:
function my_array_merge($array1, $array2) {
foreach ($array2 as $key => $val) {
if (is_array($val)) {
$array1[$key] = my_array_merge($array1[$key], $array2[$key]);
} else {
if (is_numeric($key)) {
$array1[] = $array2[$key];
} else {
$array1[$key] = $array2[$key];
}
}
}
return $array1;
}
据我所知,上面的代码与 array_merge()
完全一样,但在其中合并了数组:
$arr1 = array(array("a"));
$arr2 = array(array("b"));
将变为:
Array (
[0] => Array (
[0] => a
[1] => b
)
)
你可以使用这个:
$a =[
7,
[1,2],
[4,6],
[10,24],
[[30,40],[2,9]]
];
function mrg($array){
$out = [];
foreach($array as $b){
if(is_array($b))
$out = array_merge($out, mrg($b));
else
$out[] = $b;
}
return $out;
}
print_r(mrg($a));
$result = array_reduce($a, fn($carry, $item) => array_merge($carry, $item), []);
我有这样的代码
$a =[
[1,2],
[4,6],
[10,24]
];
我想要这样的输出
Array
(
[0] => 1
[1] => 2
[2] => 4
[3] => 6
[4] => 10
[5] => 24
)
我使用这样的代码
print_r(array_merge($a[0],$a[1],$a[2]));
如果有这样的代码并且有更多数据
Array
(
[0] => Array
(
[0] => 1
[1] => 2
)
[1] => Array
(
[0] => 4
[1] => 6
)
[2] => Array
(
[0] => 10
[1] => 24
)
.
.
.
[60] => Array
[0] => 67
[1] => 8
)
这样写不好
print_r(array_merge($a[0],$a[1],$a[2],...,...,...,$a[58]));
动态里面怎么用array_merge
?
您可以使用以下功能。
function func($array) {
$result = array();
foreach ($array as $key => $value) {
if (is_array($value)) {
$result = array_merge($result, func($value));
}
else {
$result[$key] = $value;
}
}
return $result;
}
尝试:
function my_array_merge($array1, $array2) {
foreach ($array2 as $key => $val) {
if (is_array($val)) {
$array1[$key] = my_array_merge($array1[$key], $array2[$key]);
} else {
if (is_numeric($key)) {
$array1[] = $array2[$key];
} else {
$array1[$key] = $array2[$key];
}
}
}
return $array1;
}
据我所知,上面的代码与 array_merge()
完全一样,但在其中合并了数组:
$arr1 = array(array("a"));
$arr2 = array(array("b"));
将变为:
Array (
[0] => Array (
[0] => a
[1] => b
)
)
你可以使用这个:
$a =[
7,
[1,2],
[4,6],
[10,24],
[[30,40],[2,9]]
];
function mrg($array){
$out = [];
foreach($array as $b){
if(is_array($b))
$out = array_merge($out, mrg($b));
else
$out[] = $b;
}
return $out;
}
print_r(mrg($a));
$result = array_reduce($a, fn($carry, $item) => array_merge($carry, $item), []);