php取出所有的key作为一个数组
时间: 2024-03-11 16:48:01 浏览: 13
可以使用PHP中的array_keys()函数来获取一个数组的所有键,具体代码如下:
```php
$array = array("foo" => "bar", "hello" => "world");
$keys = array_keys($array);
print_r($keys);
```
输出结果为:
```
Array
(
[0] => foo
[1] => hello
)
```
其中,$array是要取出所有键的数组,$keys是存储所有键的数组。
相关问题
php无限循环取出数组指定字段的所有数据
可以使用递归函数来实现无限循环取出数组指定字段的所有数据,示例如下:
```php
function getValues($arr, $key) {
$result = array();
foreach($arr as $item) {
if(isset($item[$key])) {
$result[] = $item[$key];
}
if(isset($item['children']) && is_array($item['children'])) {
$result = array_merge($result, getValues($item['children'], $key));
}
}
return $result;
}
```
这个函数接受两个参数,第一个参数是要遍历的数组,第二个参数是要取出的字段名。函数首先遍历数组,如果当前项存在指定字段,则将其值存入结果数组中。如果当前项存在 `children` 字段并且是数组类型,则递归调用 `getValues` 函数来遍历子数组,并将子数组中的指定字段值合并到结果数组中。最后返回结果数组。
php多维数组取出所有指定字段,并转为二维数组
假我们有一个多维数组 `$data`,它的每个元素也是一个数组,包含了多个字段,如下所示:
```php
$data = [
[
'id' => 1,
'name' => 'Alice',
'age' => 20,
'email' => 'alice@example.com',
],
[
'id' => 2,
'name' => 'Bob',
'age' => 25,
'email' => 'bob@example.com',
],
[
'id' => 3,
'name' => 'Charlie',
'age' => 30,
'email' => 'charlie@example.com',
],
];
```
如果我们要取出所有元素的 `id` 和 `name` 字段,并转为二维数组,可以使用循环遍历和 `array_map` 函数,如下所示:
```php
// 定义要取出的字段
$fields = ['id', 'name'];
// 使用循环遍历和 array_map 函数取出指定字段
$result = array_map(function($item) use ($fields) {
return array_intersect_key($item, array_flip($fields));
}, $data);
// 输出结果
print_r($result);
```
输出结果如下:
```
Array
(
[0] => Array
(
[id] => 1
[name] => Alice
)
[1] => Array
(
[id] => 2
[name] => Bob
)
[2] => Array
(
[id] => 3
[name] => Charlie
)
)
```
这里使用了 `array_intersect_key` 函数和 `array_flip` 函数来取出指定字段,它们的作用分别是:
- `array_flip` 函数将数组的键和值互换,用于将要取出的字段作为键。
- `array_intersect_key` 函数取出两个数组中键相同的部分,用于取出指定字段的值。