您现在的位置是:首页 > 正文

php array colum,php自定义数组函数array_column

2024-01-30 22:35:56阅读 0

例子,自己实现的php5.5数组函数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;

}

} // www.jbxue.com

$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

)

*/

网站文章