php怎么从二维数组里取出2个字段以及字段的值出来重新组成一个新数组
时间: 2023-11-22 07:53:17 浏览: 230
假设你有一个二维数组如下:
```
$array = [
['id' => 1, 'name' => 'Tom', 'age' => 20],
['id' => 2, 'name' => 'Jerry', 'age' => 22],
['id' => 3, 'name' => 'Mickey', 'age' => 25],
];
```
你想从每个子数组中取出 `id` 和 `name` 两个字段以及对应的值,可以使用 `array_map` 函数和闭包函数来实现:
```
$newArray = array_map(function($item) {
return [
'id' => $item['id'],
'name' => $item['name']
];
}, $array);
```
这样你就得到了一个新的数组 `$newArray`,其中只包含了 `id` 和 `name` 两个字段:
```
$newArray = [
['id' => 1, 'name' => 'Tom'],
['id' => 2, 'name' => 'Jerry'],
['id' => 3, 'name' => 'Mickey'],
];
```
相关问题
vue 将三维数组的某个字段取出 形成一个二维数组
假设你有一个三维数组 `arr`,每个元素都是一个对象,你想从其中取出每个元素的某个字段,形成一个二维数组 `newArr`,那么你可以使用 `map` 方法遍历原数组,然后再使用 `map` 方法遍历每个元素的子数组,最后将所需字段取出并放入新数组中。
代码示例:
```javascript
const arr = [
[
{ id: 1, name: 'A' },
{ id: 2, name: 'B' },
{ id: 3, name: 'C' }
],
[
{ id: 4, name: 'D' },
{ id: 5, name: 'E' },
{ id: 6, name: 'F' }
]
];
const field = 'name';
const newArr = arr.map(subArr => subArr.map(item => item[field]));
console.log(newArr); // 输出 [['A', 'B', 'C'], ['D', 'E', 'F']]
```
上述代码中,外层的 `map` 方法遍历原数组中的每个子数组,内层的 `map` 方法遍历子数组中的每个元素,最终将元素的 `name` 属性取出并放入新数组中。需要注意的是,内层的 `map` 方法返回的是一个新数组,该数组中只包含所需字段的值。
php 把一个二维数组里面的某个值作为键重新自定义
好的,我明白了。你可以使用 PHP 中的 array_column() 函数和 array_combine() 函数来完成这个操作。具体步骤如下:
1. 使用 array_column() 函数提取出要重新定义键的值,作为一个新的数组。
2. 使用 array_combine() 函数将新数组中的值作为键,原数组中的值作为值,重新生成一个二维数组。
下面是示例代码:
```php
// 原始二维数组
$originalArray = array(
array('id' => 1, 'name' => '张三'),
array('id' => 2, 'name' => '李四'),
array('id' => 3, 'name' => '王五')
);
// 使用 array_column() 函数提取出 id 作为新数组
$idArray = array_column($originalArray, 'id');
// 使用 array_combine() 函数重新定义键
$newArray = array_combine($idArray, $originalArray);
// 输出重新定义键后的二维数组
print_r($newArray);
```
输出结果如下:
```
Array
(
[1] => Array
(
[id] => 1
[name] => 张三
)
[2] => Array
(
[id] => 2
[name] => 李四
)
[3] => Array
(
[id] => 3
[name] => 王五
)
)
```
注意:在实际使用中,你需要根据自己的实际情况来修改示例代码中的变量名和键名。
阅读全文