1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
if(!function_exists('array_column')){ 関数 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)) ?現在($tmp) : null; }その他{ $tmp = isset($row[$columnKey]) ? $row[$columnKey] : null; } if(!$indexKeyIsNull){ if($indexKeyIsNumber){ $key = array_slice($row, $indexKey, 1); $key = (is_array($key) && !empty($key)) ?現在($key) : null; $key = is_null($key) ? 0 : $key; }その他{ $key = isset($row[$indexKey]) ? $row[$indexKey] : 0; } } $result[$key] = $tmp; } $result を返します; } } // 例を使用します $records = 配列( 配列( 'id' => 2135、 '名' => 「ジョン」 '姓' => 「ドー」 )、 配列( 'id' => 3245、 '名' => 「サリー」 '姓' => 「スミス」 )、 配列( 'id' => 5342、 '名' => 「ジェーン」 '姓' => 「ジョーンズ」 )、 配列( 'id' => 5623、 '名' => 「ピーター」 '姓' => 「ドー」 ) ); $firstNames = array_column($records, 'first_name'); print_r($firstNames); /* 配列 ( [0] =>ジョン [1] =>サリー [2] =>ジェーン [3] =>ピーター ) */ $records = 配列( array(1, 'ジョン', 'ドウ'), array(2, 'サリー', 'スミス'), array(3, 'ジェーン', 'ジョーンズ') ); $lastNames = array_column($records, 2); print_r($lastNames); /* 配列 ( [0] =>ドウ [1] =>スミス [2] =>ジョーンズ ) */ $mismatchedColumns = array( 配列( 'a' => 「ふー」 'b' => 「バー」、 'e' => 「バズ」 )、 配列( 'a' => 「クッ」、 'c' => 「クゥ」 'd' => 「コルゲ」 )、 配列( 'a' => 「おめでとう」 'b' => 「ガープリ」、 'e' => 「ワルド」 )、 ); $foo = array_column($mismatchedColumns, 'a', 'b'); print_r($foo); /* 配列 ( [バー] => フー [0] => [ガープライ] => ) */ |
http://www.bkjia.com/PHPjc/854798.html