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 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 5 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 ')) { 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;        &NBSP} return $result ;    &NBSP} //Use example $records = Array ( array & nbsp; ' 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] =& Gt 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    &NBSp [1] => Smith [2] => Jones) */ $mismatchedColumns = Array ( ar Ray ( ' 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   &NBsp; [0] => qux [garply] => grault) * * |