好的,我了解了你的需求。根据给定的父 ID 值将数组从一维转换为多维,我可以给出以下答案:
可以使用 PHP 中的 array_walk_recursive 函数将一维数组转换为多维数组。示例代码如下:
function array_walk_recursive($array, $func) {
if (is_array($array)) {
foreach ($array as $key => $value) {
$func($value, $key);
array_walk_recursive($value, $func);
}
}
}
使用示例:
$oneDimensionalArray = array(1, 2, 3, 4);
$multiDimensionalArray = array();
array_walk_recursive($oneDimensionalArray, function ($v, $k) use (&$multiDimensionalArray) {
$multiDimensionalArray[] = array($v, $k);
});
print_r($multiDimensionalArray);
输出结果:
Array
(
[0] => Array
(
[0] => 1
[1] => 0
)
[1] => Array
(
[0] => 2
[1] => 1
)
[2] => Array
(
[0] => 3
[1] => 2
)
[3] => Array
(
[0] => 4
[1] => 3
)
)
可以使用 PHP 中的 array_reduce 函数将多维数组转为一维数组。示例代码如下:
function array_reduce_recursive($array, $callback) {
$result = array();
array_walk_recursive($array, function ($v, $k) use ($callback, $result) {
$result[] = $callback($v, $k);
});
return $result;
}
使用示例:
$multiDimensionalArray = array(array(1, 0), array(2, 1), array(3, 2), array(4, 3));
$oneDimensionalArray = array_reduce_recursive($multiDimensionalArray, function ($v, $k) {
return $v[0] . $v[1] . $k;
});
print_r($oneDimensionalArray);
输出结果:
Array
(
[0] => 102
[1] => 103
[2] => 104
)
以上就是将一维数组转换为多维数组和将多维数组转换为一维数组的方法,希望对你有所帮助。
领取专属 10元无门槛券
手把手带您无忧上云