PHP 怎么把多维数组变成二维数组
时间: 2023-10-04 12:04:06 浏览: 184
将多维数组转换为二维数组,可以使用PHP中的array_walk_recursive()函数。该函数可以遍历多维数组中的所有元素,并对每个元素应用一个回调函数。在回调函数中,将多维数组的每个元素都添加到一个新的一维数组中,最终得到一个二维数组。
以下是一个示例代码:
```
// 原始多维数组
$multiArray = array(
array('id' => 1, 'name' => 'A', 'age' => 20),
array('id' => 2, 'name' => 'B', 'age' => 25),
array('id' => 3, 'name' => 'C', 'age' => 30)
);
// 用于将多维数组转换为一维数组的回调函数
function flattenArray($value, $key, &$result) {
$result[] = $value;
}
// 将多维数组转换为二维数组
$flattenArray = array();
array_walk_recursive($multiArray, 'flattenArray', $flattenArray);
$twoDimensionalArray = array_chunk($flattenArray, count($multiArray[0]));
// 输出转换后的二维数组
print_r($twoDimensionalArray);
```
在上面的示例代码中,我们首先定义了一个原始的多维数组$multiArray。然后我们使用array_walk_recursive()函数遍历该多维数组,并将每个元素都添加到$flattenArray数组中。最后,我们使用array_chunk()函数将$flattenArray数组转换为二维数组$twoDimensionalArray。
值得注意的是,在使用array_chunk()函数将一维数组转换为二维数组时,我们使用了count($multiArray[0])作为第二个参数,这是因为原始多维数组中的每个子数组都具有相同的键名,因此我们可以使用任何一个子数组的键名数量作为第二个参数。
阅读全文