【PHP】二维数组转一维数组

2023-12-30 17:35:11

在 PHP 中,如果你想将一个二维数组转换为一维数组,你可以使用几种不同的方法。以下是一些常见的方法:

1.使用 array_column() 函数


$data = [
    ['id' => 1, 'ci' => 'A'],
    ['id' => 2, 'ci' => 'B'],
    ['id' => 3, 'ci' => 'C'],
    ['id' => 4, 'ci' => 'D'],
];

// 使用 array_column() 提取 'ci' 键
$flattenedArray = array_column($data, 'ci');

print_r($flattenedArray);

array_column() 用于提取数组中的列,最为直接

2.使用 array_map() 函数:


$data = [
    ['id' => 1, 'ci' => 'A'],
    ['id' => 2, 'ci' => 'B'],
    ['id' => 3, 'ci' => 'C'],
    ['id' => 4, 'ci' => 'D'],
];

// 使用 array_map() 遍历数组并返回 'ci' 键的值
$flattenedArray = array_map(function($item) {
    return $item['ci'];
}, $data);

print_r($flattenedArray);

array_map() 用于对数组中的每个元素应用回调函数,返回的是由回调函数的返回值组成的新数组。

3.使用 foreach 循环手动合并:


$data = [
    ['id' => 1, 'ci' => 'A'],
    ['id' => 2, 'ci' => 'B'],
    ['id' => 3, 'ci' => 'C'],
    ['id' => 4, 'ci' => 'D'],
];

$flattenedArray = [];

foreach ($data as $item) {
    $flattenedArray[] = $item['ci'];
}

print_r($flattenedArray);

以上任何一种方法都可以将二维数组转换为一维数组,具体使用哪种方法取决于你的具体需求和偏好。

4.特殊情况,如果二维里面包含数组,提取数组


$data = [
    ['id' => 1, 'ci' => ['A'=>'A']],
    ['id' => 2, 'ci' => ['B'=>'B']],
    ['id' => 3, 'ci' => ['C'=>'c']],
    ['id' => 4, 'ci' => ['D'=>'d']],
];

// 使用 array_map() 来提取 'ci' 键,并直接合并成新数组
$newArray = call_user_func_array('array_merge', array_map(function($item) {
    return $item['ci'];
}, $data));
print_r($newArray);

5.特殊情况的方法2


$data = [
    ['id' => 1, 'ci' => ['A'=>'A']],
    ['id' => 2, 'ci' => ['B'=>'B']],
    ['id' => 3, 'ci' => ['C'=>'c']],
    ['id' => 4, 'ci' => ['D'=>'d']],
];

// 使用 array_map() 来提取 'ci' 键,并直接合并成新数组
$newArray = call_user_func_array('array_merge', array_column($data, 'ci'));
print_r($newArray);

文章来源:https://blog.csdn.net/q8688/article/details/135307060
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。