php5.5新数组函数array_column使用_php教程-查字典教程网
php5.5新数组函数array_column使用
php5.5新数组函数array_column使用
发布时间:2016-12-29 来源:查字典编辑
摘要:PHP5.5发布了,其中增加了一个新的数组函数array_column,感觉不错的!但是低版本PHP要使用,得自己实现:参考地址:https...

PHP5.5发布了,其中增加了一个新的数组函数array_column,感觉不错的!但是低版本PHP要使用,得自己实现:

参考地址:https://wiki.php.net/rfc/array_column

复制代码 代码如下:

if(!function_exists('array_column')){

function array_column($input, $columnKey, $indexKey=null){

$columnKeyIsNumber = (is_numeric($columnKey)) ? true : false;

$indexKeyIsNull = (is_null($indexKey)) ? true : false;

$indexKeyIsNumber = (is_numeric($indexKey)) ? true : false;

$result = array();

foreach((array)$input as $key=>$row){

if($columnKeyIsNumber){

$tmp = array_slice($row, $columnKey, 1);

$tmp = (is_array($tmp) && !empty($tmp)) ? current($tmp) : null;

}else{

$tmp = isset($row[$columnKey]) ? $row[$columnKey] : null;

}

if(!$indexKeyIsNull){

if($indexKeyIsNumber){

$key = array_slice($row, $indexKey, 1);

$key = (is_array($key) && !empty($key)) ? current($key) : null;

$key = is_null($key) ? 0 : $key;

}else{

$key = isset($row[$indexKey]) ? $row[$indexKey] : 0;

}

}

$result[$key] = $tmp;

}

return $result;

}

}

// 使用例子

$records = array(

array(

'id' => 2135,

'first_name' => 'John',

'last_name' => 'Doe'

),

array(

'id' => 3245,

'first_name' => 'Sally',

'last_name' => 'Smith'

),

array(

'id' => 5342,

'first_name' => 'Jane',

'last_name' => 'Jones'

),

array(

'id' => 5623,

'first_name' => 'Peter',

'last_name' => 'Doe'

)

);

$firstNames = array_column($records, 'first_name');

print_r($firstNames);

/*

Array

(

[0] => John

[1] => Sally

[2] => Jane

[3] => Peter

)

*/

$records = array(

array(1, 'John', 'Doe'),

array(2, 'Sally', 'Smith'),

array(3, 'Jane', 'Jones')

);

$lastNames = array_column($records, 2);

print_r($lastNames);

/*

Array

(

[0] => Doe

[1] => Smith

[2] => Jones

)

*/

$mismatchedColumns = array(

array(

'a' => 'foo',

'b' => 'bar',

'e' => 'baz'

),

array(

'a' => 'qux',

'c' => 'quux',

'd' => 'corge'

),

array(

'a' => 'grault',

'b' => 'garply',

'e' => 'waldo'

),

);

$foo = array_column($mismatchedColumns, 'a', 'b');

print_r($foo);

/*

Array

(

[bar] => foo

[0] => qux

[garply] => grault

)

*/

array_column 用于获取二维数组中的元素(PHP 5 >= 5.5.0)

复制代码 代码如下:

<?php

// Array representing a possible record set returned from a database

$records = array(

array(

'id' => 2135,

'first_name' => 'John',

'last_name' => 'Doe',

),

array(

'id' => 3245,

'first_name' => 'Sally',

'last_name' => 'Smith',

),

array(

'id' => 5342,

'first_name' => 'Jane',

'last_name' => 'Jones',

),

array(

'id' => 5623,

'first_name' => 'Peter',

'last_name' => 'Doe',

)

);

$first_names = array_column($records, 'first_name');

print_r($first_names);

?>

Array

(

[0] => John

[1] => Sally

[2] => Jane

[3] => Peter

)<?php

// Using the $records array from Example #1

$last_names = array_column($records, 'last_name', 'id');

print_r($last_names);

?>

Array

(

[2135] => Doe

[3245] => Smith

[5342] => Jones

[5623] => Doe

)

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新php教程学习
    热门php教程学习
    编程开发子分类