php数组工具类
2016-05-12
1420
简介:
数组《=》对象
-
-
-
-
-
-
-
-
-
-
-
- function array2Object($array) {
- if (!is_array($array)) return $array;
-
- $object = new stdClass();
- if (is_array($array) && count($array) > 0) {
- foreach ($array as $name => $value) {
- $name = strtolower(trim($name));
- if ($name) $object->$name = array2Object($value);
- }
-
- return $object;
- } else return FALSE;
- }
-
-
-
-
- function object2Array($objParam) {
- $obj_param = ( array )$objParam;
- foreach ($obj_param as $key => $value) {
- if (is_object($value)) {
- object2Array($value);
- $obj_param [$key] = ( array )$value;
- }
- }
- return $obj_param;
- }
数组《=》字符串
-
-
-
-
-
-
- function string2array($data) {
- $array = array();
- if ($data == '') return $array;
- eval("\$array = $data;");
- return $array;
- }
-
-
-
-
-
-
- function new_stripslashes($string) {
- if (!is_array($string)) return stripslashes($string);
- foreach ($string as $key => $val) $string[$key] = new_stripslashes($val);
- return $string;
- }
-
-
-
-
-
-
-
-
- function array2string($data, $isformdata = 1) {
- if ($data == '') return '';
- if ($isformdata) $data = new_stripslashes($data);
- return addslashes(var_export($data, TRUE));
- }
数组《=》树
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- function array_to_tree($arr, $fid, $fparent = 'parent_id',
- $fchildrens = 'childrens', $returnReferences = false) {
- $pkvRefs = array();
- foreach ($arr as $offset => $row) {
- $pkvRefs[$row[$fid]] =& $arr[$offset];
- }
-
- $tree = array();
- foreach ($arr as $offset => $row) {
- $parentId = $row[$fparent];
- if ($parentId) {
- if (!isset($pkvRefs[$parentId])) {
- continue;
- }
- $parent =& $pkvRefs[$parentId];
- $parent[$fchildrens][] =& $arr[$offset];
- } else {
- $tree[] =& $arr[$offset];
- }
- }
- if ($returnReferences) {
- return array('tree' => $tree, 'refs' => $pkvRefs);
- } else {
- return $tree;
- }
- }
-
-
-
-
-
-
-
-
-
- function tree_to_array(& $node, $fchildrens = 'childrens') {
- $ret = array();
- if (isset($node[$fchildrens]) && is_array($node[$fchildrens])) {
- foreach ($node[$fchildrens] as $child) {
- $ret = array_merge($ret, tree_to_array($child, $fchildrens));
- }
- unset($node[$fchildrens]);
- $ret[] = $node;
- } else {
- $ret[] = $node;
- }
- return $ret;
- }
PHP二维数组去重复项函数
- <?php
- function unique_array_2d($array2D,$stkeep=false,$ndformat=true)
- {
-
- if($stkeep) $stArr = array_keys($array2D);
-
-
- if($ndformat) $ndArr = array_keys(end($array2D));
-
-
- foreach ($array2D as $v){
- $v = join(",",$v);
- $temp[] = $v;
- }
-
-
- $temp = array_unique($temp);
-
-
- foreach ($temp as $k => $v)
- {
- if($stkeep) $k = $stArr[$k];
- if($ndformat)
- {
- $tempArr = explode(",",$v);
- foreach($tempArr as $ndkey => $ndval) $output[$k][$ndArr[$ndkey]] = $ndval;
- }
- else $output[$k] = explode(",",$v);
- }
-
- return $output;
- }
-
- $array2D = array(
- 'first'=>array('title'=>'1111','date'=>'2222'),
- 'second'=>array('title'=>'1111','date'=>'2222'),
- 'third'=>array('title'=>'2222','date'=>'3333')
- );
-
- echo "<pre>";
- print_r(unique_array_2d($array2D,true));
-
-
-
-
-
-
-
-
- function array_multunique($arr,$by = array()) {
- $temp = array();
- foreach($arr as $key => $val) {
- foreach($by as $v) {
- $temp[$key] .= isset($val[$v]) ? $val[$v] : '';
- }
- }
- return array_intersect_key($arr,array_unique($temp));
- }
-
-
-
-
-
-
-
-
-
-
- function array_remove_key($array,$keys){
- if (!is_array($array) || !is_array($keys)){
- return false;
- }
- foreach($array as $t){
- foreach($keys as $k){
- unset($t[$k]);
- }
- $doc[]=$t;
- }
- return $doc;
-
- }
-
-
-
-
-
-
- function array_remove_key_val(&$a,$b,$c){
- foreach ($a as $key=>$value){
- if ( isset($value[$b]) && ($value[$b]==$c) ){
- unset($a[$key]);
- }
- }
- }
-
-
-
-
-
- <?php
-
-
-
-
-
-
- function array_iconv($data, $input = 'gbk', $output = 'utf-8') {
- if (!is_array($data)) {
- return iconv($input, $output, $data);
- } else {
- foreach ($data as $key => $val) {
- if (is_array($val)) {
- $data[$key] = array_iconv($val, $input, $output);
- } else {
- $data[$key] = iconv($input, $output, $val);
- }
- }
- return $data;
- }
- }
-
- function array_insert($myarray, $value, $position) {
- $fore = array_splice($myarray, 0, $position);
- $fore[] = $value;
- $ret = array_merge($fore, $myarray);
- return $ret;
- }
-
-
-
-
-
-
- function array_remove_empty(& $arr, $trim = true) {
- foreach ($arr as $key => $value) {
- if (is_array($value)) {
- array_remove_empty($arr[$key]);
- } else {
- $value = trim($value);
- if ($value == '') {
- unset($arr[$key]);
- } elseif ($trim) {
- $arr[$key] = $value;
- }
- }
- }
- }
-
-
-
-
-
-
-
-
-
-
-
-
- function array_to_hashmap(& $arr, $keyField, $valueField = null) {
- $ret = array();
- if ($valueField) {
- foreach ($arr as $row) {
- $ret[$row[$keyField]] = $row[$valueField];
- }
- } else {
- foreach ($arr as $row) {
- $ret[$row[$keyField]] = $row;
- }
- }
- return $ret;
- }
-
-
-
-
-
-
-
-
-
- function array_group_by(& $arr, $keyField) {
- $ret = array();
- foreach ($arr as $row) {
- $key = $row[$keyField];
- $ret[$key][] = $row;
- }
- return $ret;
- }
-
-
-
-
-
-
-
-
-
-
- function array_column_sort($array, $keyname, $sortDirection = SORT_ASC) {
- return array_sortby_multifields($array, array($keyname => $sortDirection));
- }
-
-
-
-
-
-
-
- function array_sortby_multifields($rowset, $args) {
- $sortArray = array();
- $sortRule = '';
- foreach ($args as $sortField => $sortDir) {
- foreach ($rowset as $offset => $row) {
- $sortArray[$sortField][$offset] = $row[$sortField];
- }
- $sortRule .= '$sortArray[\'' . $sortField . '\'], ' . $sortDir . ', ';
- }
- if (empty($sortArray) || empty($sortRule)) {
- return $rowset;
- }
- eval('array_multisort(' . $sortRule . '$rowset);');
- return $rowset;
- }
-
-
-
-
-
-
- function array_exchange($arr, $arg1, $arg2) {
- $r = range(0, count($arr) - 1);
- $res = $res_bak = array_combine($r, array_keys($arr));
- $change = array($arg1, $arg2);
- list ($res [array_search($change [0], $res_bak)], $res [array_search($change [1], $res_bak)]) = array($change [1], $change [0]);
- foreach ($res as $v) {
- $array [$v] = $arr [$v];
- }
- return $array;
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- function array_pos($array, $search) {
- if (empty($array)) return false;
- if (!$search) return 0;
- sort($array);
- $array_turn = array_flip($array);
- if (isset($array_turn[$search])) {
- $arrpos = $array_turn[$search];
- } else {
- $tmp_arr = $array;
- $tmp_arr[] = $search;
- sort($tmp_arr);
- $tmp_arr_turn = array_flip($tmp_arr);
- $arrpos = $tmp_arr_turn[$search];
- }
- return $arrpos;
- }
-
-
- function arrayUnshift($arrParams, $arrAdd) {
- $arr_keys = array();
- $arr_values = array();
- $arr_add_keys = array_keys($arrAdd);
- $arr_keys = array($arr_add_keys [0]);
- $arr_values = array($arrAdd [$arr_add_keys [0]]);
- foreach ($arrParams as $key => $value) {
- array_push($arr_keys, $key);
- array_push($arr_values, $value);
- }
- $arr_result = array_combine($arr_keys, $arr_values);
- return $arr_result;
- }
-
-
- function getKey2Array(array $arr, $key) {
- if (!trim($key)) return false;
- preg_match_all("/\"$key\";\w{1}:(?:\d+:|)(.*?);/", serialize($arr), $output);
- return $output[1];
- }
-
-
- function rebuild_array($arr) {
- static $tmp = array();
-
- for ($i = 0; $i < count($arr); $i++) {
- if (is_array($arr[$i])) {
- rebuild_array($arr[$i]);
- } else {
- $tmp[] = $arr[$i];
- }
- }
-
- return $tmp;
- }
-
-
-
-
-
-
-
- function array_col_values(& $arr, $col)
- {
- $ret = array();
- foreach ($arr as $row) {
- if (isset($row[$col])) {
- $ret[] = $row[$col];
- }
- }
- return $ret;
- }
-
- $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_col_values($records, 'first_name');
- print_r($firstNames);
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。