国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

php對(duì)二維數(shù)組進(jìn)行相關(guān)操作(排序、轉(zhuǎn)換、去空白等)

2020-03-22 18:16:07
字體:
供稿:網(wǎng)友
$result=array_reverse($input); //將數(shù)組顛倒,不保留鍵名 $result_keyed=array_reverse($input,true); //將數(shù)組顛倒,保留鍵名 array_keys($array,"blue"); //返回值為blue的鍵名 1. PHP二維數(shù)組去重復(fù)項(xiàng)函數(shù)
PHP數(shù)組去除重復(fù)項(xiàng)有個(gè)內(nèi)置函數(shù)array_unique (),但是php的 array_unique函數(shù)只適用于一維數(shù)組,對(duì)多維數(shù)組并不適用,以下提供一個(gè)二維數(shù)組的array_unique函數(shù)
function unique_arr($array2D,$stkeep=false,$ndformat=true) // 判斷是否保留一級(jí)數(shù)組鍵 (一級(jí)數(shù)組鍵可以為非數(shù)字) if($stkeep) $stArr = array_keys($array2D); // 判斷是否保留二級(jí)數(shù)組鍵 (所有二級(jí)數(shù)組鍵必須相同) if($ndformat) $ndArr = array_keys(end($array2D)); //降維,也可以用implode,將一維數(shù)組轉(zhuǎn)換為用逗號(hào)連接的字符串 foreach ($array2D as $v){ $v = join(",",$v); $temp[] = $v; //去掉重復(fù)的字符串,也就是重復(fù)的一維數(shù)組 $temp = array_unique($temp); //再將拆開的數(shù)組重新組裝 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'));
第一組 :sort 和 rsort ,按照PHP數(shù)組鍵值的順序asc和逆序desc進(jìn)行排序,同時(shí)破壞原來數(shù)組的索引關(guān)系——其實(shí)是刪除索引之后重新建立從0開始的數(shù)字索引。
$a = array('a'= 1,2); sort($a); printr($a); rsort($a); printr($a); /*Array [0] = 1 [1] = 2 Array [0] = 2 [1] = 1 */ 第二組函數(shù):asort 和 arsort ,這兩個(gè)函數(shù)就比較厲害一點(diǎn)了,只要他們可以保留數(shù)組原有的索引關(guān)系,把上例的sort 和 rsort 分別用這兩個(gè)函數(shù)替換一下
$a = array('a'= 1,2); asort($a); printr($a); arsort($a); printr($a); Array [a] = 1 [0] = 2 Array [0] = 2 [a] = 1 */ 第三組PHP數(shù)組排序函數(shù):krsort 和 ksort ,這兩個(gè)不同于以上兩組,這兩函數(shù)是對(duì)鍵名進(jìn)行排序的.
$a = array('a'= 1,2); ksort($a); printr($a); krsort($a); printr($a); Array [0] = 2 [a] = 1 Array [a] = 1 [0] = 2 通過自定義函數(shù)對(duì)PHP數(shù)組進(jìn)行排序,有三個(gè)函數(shù)分別是:
uasort 通過自定義函數(shù)對(duì)PHP數(shù)組的鍵值進(jìn)行排序,并且保留原來的索引關(guān)系。
uksort 通過自定義函數(shù)對(duì)PHP數(shù)組的鍵名進(jìn)行排序,并且保留原來的索引關(guān)系。
usort通過自定義函數(shù)對(duì)PHP數(shù)組的鍵值進(jìn)行排序,并且刪除原來的索 引關(guān)系,從零開始建立新的索引。
下面是二維排序:
* @package BugFree * @version $Id: FunctionsMain.inc.php,v 1.32 2005/09/24 11:38:37 wwccss Exp $ * Sort an two-dimension array by some level two items use array_multisort() function. * sortArr($Array,"Key1","SORT_ASC","SORT_RETULAR","Key2"……) * @author Chunsheng Wang wwccss@263.net * @param array $ArrayData the array to sort. * @param string $KeyName1 the first item to sort by. * @param string $SortOrder1 the order to sort by("SORT_ASC"|"SORT_DESC") * @param string $SortType1 the sort type("SORT_REGULAR"|"SORT_NUMERIC"|"SORT_STRING") * @return array sorted array. function sortArr($ArrayData,$KeyName1,$SortOrder1 = "SORT_ASC",$SortType1 = "SORT_REGULAR") if(!is_array($ArrayData)) return $ArrayData; // Get args number. $ArgCount = func_num_args(); // Get keys to sort by and put them to SortRule array. for($I = 1;$I $ArgCount;$I ++) $Arg = func_get_arg($I); if(!eregi("SORT",$Arg)) $KeyNameList[] = $Arg; $SortRule[] = '$'.$Arg; else $SortRule[] = $Arg; // Get the html' target='_blank'>values according to the keys and put them to array. foreach($ArrayData AS $Key = $Info) foreach($KeyNameList AS $KeyName) ${$KeyName}[$Key] = strtolower($Info[$KeyName]); // Create the eval string and eval it. $EvalString = 'array_multisort('.join(",",$SortRule).',$ArrayData);'; eval ($EvalString); return $ArrayData; 實(shí)例:
//################# 示例 ################# $arr = array( array( 'name' = '學(xué)習(xí)', 'size' = '1235', 'type' = 'jpe', 'time' = '1921-11-13', 'class' = 'dd', array( 'name' = '中國功夫', 'size' = '153', 'type' = 'jpe', 'time' = '2005-11-13', 'class' = 'jj', array( 'name' = '編程', 'size' = '35', 'type' = 'gif', 'time' = '1997-11-13', 'class' = 'dd', array( 'name' = '中國功夫', 'size' = '65', 'type' = 'jpe', 'time' = '1925-02-13', 'class' = 'yy', array( 'name' = '中國功夫', 'size' = '5', 'type' = 'icon', 'time' = '1967-12-13', 'class' = 'rr', echo ' pre print_r($arr); echo ' br //注意:按照數(shù)字方式排序時(shí) 153 比 65 小 $temp = sortArr($arr,"name","SORT_ASC","type","SORT_DESC","size","SORT_ASC","SORT_STRING"); print_r($temp); echo ' /pre 3. 多維數(shù)組轉(zhuǎn)一維數(shù)組
function rebuild_array($arr){ //rebuild a array 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; 實(shí)例:
$arr=array('123.html','456.html',array('dw.html','fl.html',array('ps.html','fw.html')),'ab.html'); // 定義一個(gè)三維數(shù)組,用來檢測(cè)我們的函數(shù) echo ' pre print_r(rebuild_array($arr)); echo ' /pre 4. 從數(shù)組中刪除空白的元素
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; 實(shí)例:
$a = array(array(3),2,'',array('',23),0); array_remove_empty($a); printr($a); // printr 函數(shù)請(qǐng)?jiān)诒疚闹姓?5. 獲取多維數(shù)組下特定鍵下的值,并生成一維數(shù)組
function getall_by_key(array $arr, $key){ if (!trim($key)) return false; preg_match_all("http://"$key/";/w{1}:( :/d+:|)(.* /", serialize($arr), $output); return $output[1]; $testArr = array('111'= 100, 'out'= 200, '333' = array('out' = 310, array(321, 322, 'out' = "this is a test"))); printr(getall_by_key($testArr, 'out')); 以上就是本文的全部?jī)?nèi)容,php對(duì)于二維數(shù)組的相應(yīng)操作介紹的很詳細(xì),希望對(duì)大家的學(xué)習(xí)有所幫助。PHP教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 务川| 天峻县| 江华| 东台市| 东乌珠穆沁旗| 余庆县| 潮州市| 长白| 青海省| 安徽省| 江北区| 井陉县| 上思县| 新乡市| 砀山县| 海兴县| 武功县| 诸城市| 拜泉县| 晋宁县| 惠安县| 邯郸县| 兰溪市| 吴旗县| 澳门| 旌德县| 黑龙江省| 沧源| 文化| 上饶市| 滕州市| 上饶县| 洞头县| 麟游县| 桃源县| 浮山县| 安福县| 灵宝市| 谢通门县| 西吉县| 馆陶县|