展会信息港展会大全

php5.5新数组函数array_column使用
来源:互联网   发布日期:2016-03-02 15:18:18   浏览:1343次  

导读:PHP5.5发布了,其中增加了一个新的数组函数array_column,感觉不错的!但是低版本PHP要使用,得自己实现:参考地址:https://wiki.php.net/rfc/array_c...

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

)

赞助本站

人工智能实验室

相关热词: 开发 编程 android

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港