php
array_column
方法可以返回数组中指定的一列,但不能返回多列,本文将介绍
array_column
方法的使用,并用代码演示返回数组中指定多列的方法。
1.array_column说明
array_column可以返回数组中指定一列
array array_column ( array $input , mixed $column_key [, mixed $index_key = null ] )
参数说明:
input
需要取出数组列的多维数组。 如果提供的是包含一组对象的数组,只有 public 属性会被直接取出。 为了也能取出 private 和 protected 属性,类必须实现 __get() 和 __isset() 魔术方法。
column_key
需要返回值的列,它可以是索引数组的列索引,或者是关联数组的列的键,也可以是属性名。 也可以是NULL,此时将返回整个数组(配合index_key参数来重置数组键的时候,非常管用)
index_key
作为返回数组的索引/键的列,它可以是该列的整数索引,或者字符串键值。
例子:
返回数组中name列
$arr
=
array
(
array
(
'id'
=>
1001
,
'name'
=>
'fdipzone'
,
'age'
=>
18
,
'profession'
=>
'programmer'
),
array
(
'id'
=>
1002
,
'name'
=>
'terry'
,
'age'
=>
19
,
'profession'
=>
'designer'
),
array
(
'id'
=>
1003
,
'name'
=>
'alex'
,
'age'
=>
20
,
'profession'
=>
'tester'
),
$result
= array_column(
$arr
,
'name'
);
print_r(
$result
);
Array
[0] => fdipzone
[1] => terry
[2] => alex
2.返回数组中指定多列的方法
array_column方法可以返回数组中指定一列,但不能返回多列,因此写了以下这个方法,支持返回数组中多列,参数调用与array_column相似。
* 返回数组中指定多列
* @param Array $input 需要取出数组列的多维数组
* @param String $column_keys 要取出的列名,逗号分隔,如不传则返回所有列
* @param String $index_key 作为返回数组的索引的列
* @return Array
function array_columns($input, $column_keys=null, $index_key=null){
$result = array();
$keys =isset($column_keys)? explode(',', $column_keys) : array();
if($input){
foreach($input as $k=>$v){
if($keys){
$tmp = array();
foreach($keys as $key){
$tmp[$key] = $v[$key];
}else{
$tmp = $v;
if(isset($index_key)){
$result[$v[$index_key]] = $tmp;
}else{
$result[] = $tmp;
return $result;
$arr = array(
array('id'=>1001, 'name'=>'fdipzone', 'age'=>18, 'profession'=>'programmer'),
array('id'=>1002, 'name'=>'terry', 'age'=>19, 'profession'=>'designer'),
array('id'=>1003, 'name'=>'alex', 'age'=>20, 'profession'=>'tester'),
echo '指定返回列及索引列'.PHP_EOL;
$result = array_columns($arr, 'name,profession', 'id');
print_r($result);
echo PHP_EOL.'指定返回列,不指定索引列'.PHP_EOL;
$result = array_columns($arr, 'name,profession');
print_r($result);
echo PHP_EOL.'不指定返回列,指定索引列'.PHP_EOL;
$result = array_columns($arr, null, 'id');
print_r($result);
echo PHP_EOL.'不指定返回列,不指定索引列'.PHP_EOL;
$result = array_columns($arr);
print_r($result);
指定返回列及索引列
Array
[1001] => Array
[name] => fdipzone
[profession] => programmer
[1002] => Array
[name] => terry
[profession] => designer
[1003] => Array
[name] => alex
[profession] => tester
指定返回列,不指定索引列
Array
[0] => Array
[name] => fdipzone
[profession] => programmer
[1] => Array
[name] => terry
[profession] => designer
[2] => Array
[name] => alex
[profession] => tester
不指定返回列,指定索引列
Array
[1001] => Array
[id] => 1001
[name] => fdipzone
[age] => 18
[profession] => programmer
[1002] => Array
[id] => 1002
[name] => terry
[age] => 19
[profession] => designer
[1003] => Array
[id] => 1003
[name] => alex
[age] => 20
[profession] => tester
不指定返回列,不指定索引列
Array
[0] => Array
[id] => 1001
[name] => fdipzone
[age] => 18
[profession] => programmer
[1] => Array
[id] => 1002
[name] => terry
[age] => 19
[profession] => designer
[2] => Array
[id] => 1003
[name] => alex
[age] => 20
[profession] => tester
1、array_column(array$input,mixed$column_key[,mixed$index_key= null] ) :array
返回多维数组中指定的一列 ,如果指定了可选参数index_key,那么input数组中的这一列的值将作为返回数组中对应值的键。
input:需要取出数组列的多维数组(或结果集)
column_key:需要返回值的列,它可以是索引数组的列索引,或者是关联数组的列的键。 也可以是 NULL ,此时将返回整个数组(配合 i...
<?php
* 返回的值的一列$input阵列,确定由columnKey。或者,您可以提供一个indexKey指数的$input数组中的值从indexKey列返回的数组中的值。
* 像从数据库获取一列,但返回是数组(扩展:获取多列)
* @param array $input 一个多维数组(记录集),拉一列值
* @param mixed $columnK
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$value = $redis->hGet('key', 'field');
其中,'key' 是 Redis 中的数组名称,'field' 是键值。
2. 使用 `hMGet()` 方法:
```php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$values = $redis->hMGet('key', ['field1', 'field2']);
其中,'key' 是 Redis 中的数组名称,'field1' 和 'field2' 是要查询的键值。这个方法可以同时查询多个键值,并以数组的形式返回结果。
希望这能帮到你!
mysql5.7导出数据提示--secure-file-priv选项问题的解决方法
Big善人:
mysql left join 右表数据不唯一的情况解决方法
m0_60480326:
mysql group by 组内排序方法
新建文件夹-:
linux inode已满解决方法
zhangbeihai_docker: