類庫(完整類庫):
<?php class arrayhelper
else
elseif ($trim)}}
} /**
* 從乙個二維陣列中返回指定鍵的所有值
** 用法:
* @code php
* $rows = array(
* array('id' => 1, 'value' => '1-1'),
* array('id' => 2, 'value' => '2-1'),
* );
* $values = arrayhelper::getcols($rows, 'value');
** dump($values);
* // 輸出結果為
* // array(
* // '1-1',
* // '2-1',
* // )
* @endcode
** @param array $arr 資料來源
* @param string $col 程式設計客棧要查詢的鍵
** @return array 包含指定鍵所有值的陣列
*/static function getcols($arr, $col)
}return $ret;
} /**
* 將乙個二維陣列轉換為 hashmap,並返回結果
** 用法1:
* @code php
* $rows = array(
* array('id' => 1, 'value' => '1-1'),
* array('id' => 2, 'value' => '2-1'),
* );
* $hashmap = arrayhelper::tohashmap($rows, 'id', 'value');
** dump($hashmap);
* // 輸出結果為
* // array(
* // 1 => '1-1',
* // 2 => '2-1',
程式設計客棧* // )
* @endcode
** 如果省略 $valuefield 引數,則轉換結果每一項為包含該項所有資料的陣列。
** 用法2:
* @code php
* $rows = array(
* array('id' => 1, 'value' => '1-1'),
* array('id' 程式設計客棧=> 2, 'value' => '2-1'),
* );
* $hashmap = arrayhelper::tohashmap($rows, 'id');
** dump($hashmap);
* // 輸出結果為
* // array(
* // 1 => array('id' => 1, 'value' => '1-1'),
* // 2 => array('id' => 2, 'value' => '2-1'),
* // )
* @endcode
** @param array $arr 資料來源
* @param string $keyfield 按照什麼鍵的值進行轉換
* @param string $valuefield 對應的鍵值
** @return array 轉換後的 hashmap程式設計客棧 樣式陣列
*/static function tohashmap($arr, $keyfield, $valuefield = null)
}else
}return $ret;
} /**
* 將乙個二維陣列按照指定欄位的值分組
** 用法:
* @endcode
** @param array $arr 資料來源
* @param string $keyfield 作為分組依據的鍵名
** @return array 分組後的結果
*/static function groupby($arr, $keyfield)
return $ret;
} /**
* 將乙個平面的二維陣列按照指定的字段轉換為樹狀結構**
* 如果要獲得任意節點為根的子樹,可以使用 $refs 引數:
* @code php
* $refs = null;
* $tree = arrayhelper::tree($rows, 'id', 'parent', 'nodes', $refs);
** // 輸出 id 為 3 的節點及其所有子節點
* $id = 3;
* dump($refs[$id]);
* @endcode
** @param array $arr 資料來源
* @param string $keynodeid 節點id欄位名
* @param string $keyparentid 節點父id欄位名
* @param string $keychildrens 儲存子節點的欄位名
* @param boolean $refs 是否在返回結果中包含節點引用
** return array 樹形結構的陣列
*/static function totree($arr, $keynodeid, $keyparentid = 'parent_id', $keychildrens = 'childrens', & $refs = null)
$tree = array();
foreach ($arr as $offset => $row)
$parent =& $refs[$parentid];
$parent[$keychildrens] =& $arr[$offset];
}else
}return $tree;
} /**
* 將樹形陣列展開為平面的陣列
** 這個方法是 tree() 方法的逆向操作。
** @param array $tree 樹形陣列
* @param string $keychildrens 包含子節點的鍵名
** @return array 展開後的陣列
*/static function treetoarray($tree, $keychildrens = 'childrens')
unset($node[$keychildrens]);
$ret = $tree;
}else
return $ret;
} /**
* 根據指定的鍵對陣列排序
** @endcode
** @param array $array 要排序的陣列
* @param string $keyname 排序的鍵
* @param int $dir 排序方向
** @return array 排序後的陣列
*/static function sortbycol($array, $keyname, $dir = sort_asc)
/*** 將乙個二維陣列按照多個列進行排序,類似 sql 語句中的 order by
** 用法:
* @code php
* $rows = arrayhelper::sortbymulticols($rows, array(
* 'parent' => sort_as
* 'name' => sort_desc,
* ));
* @endcode
** @param array $rowset 要排序的陣列
* @param array $args 排序的鍵
** @return array 排序後的陣列
*/static function sortbymulticols($rowset, $args)
$sortrule .= '$sortarray[\'\' . $sortfield .\'\'], ' . $sortdir . ', ';
}if (empty($sortarray) || empty($sortrule))
eval('array_multisort(' . $sortrule . '$rowset);');
return $rowset;
}}?>
用法示例:
從陣列中刪除空白的元素(包括只有空白字元的元素)
用法:$arr = array('', 'test', ' ');
arrayhelper::removeempty($arr);
var_dump($arr);
輸出結果中將只有 'test'
array(1)
php 定義物件,php的類與物件怎麼定義
在自己學習php的過程中,從零基礎開始 從第一本書的看不懂,到第二本書的有印象了,再到第三本書的操作簡單語句 記不清到底看過多少本了。可 是在應用時,每次到了一些關鍵知識點和核心技術,對其定義和用法會有模糊的感覺,因此特意把覺得比較重要的知識點寫成網路筆記,這樣便於經常翻來溫習。面向過程定義 面向過...
oc中類的定義與php中類定義的區別
之前做過 php的開發,現在學 oc語言,感覺區別還是不小的 首先說說類 php中定義的類如下寫法 class person 建立有乙個類的物件 new person person 這裡可以直接用 person.age abc oc中定義的類還是比較麻煩的 定義乙個類是繼承了oc中foundatio...
php類的例項化物件,php類的定義與例項化方法
php類的定義 類是對某個物件的定義。它包含有關物件動作方式的資訊,包括它的名稱 方法 屬性和事件。實際上它本身並不是物件,因為它不存在於記憶體中。當引用類的 執行時,類的乙個新的例項,即物件,就在記憶體中建立了。雖然只有乙個類,但能從這個類在記憶體中建立多個相同型別的物件。類是通過class關鍵字...