php 空二位数组,php对二维数组进行相关操作(排序、转换、去空白等),php二维数组_PHP教程...
function printr($arr)
{
echo '';
print_r($arr);
echo '
';
}
第一组 :sort 和 rsort,按照PHP数组键值的顺序asc和逆序desc进行排序,同时破坏原来数组的索引关系——其实是删除索引之后重新建立从0开始的数字索引。
$a = array('a'=>1,2);
sort($a); printr($a);
rsort($a); printr($a);
/*Array
(
[0] => 1
[1] => 2
)
Array
(
[0] => 2
[1] => 1
)
*/
第二组函数:asort 和 arsort ,这两个函数就比较厉害一点了,只要他们可以保留数组原有的索引关系,把上例的sort 和 rsort 分别用这两个函数替换一下
$a = array('a'=>1,2);
asort($a); printr($a);
arsort($a); printr($a);
/*
Array
(
[a] => 1
[0] => 2
)
Array
(
[0] => 2
[a] => 1
)
*/
第三组PHP数组排序函数:krsort 和 ksort ,这两个不同于以上两组,这两函数是对键名进行排序的.
$a = array('a'=>1,2);
ksort($a); printr($a);
krsort($a); printr($a);
/*
Array
(
[0] => 2
[a] => 1
)
Array
(
[a] => 1
[0] => 2
)
*/
通过自定义函数对PHP数组进行排序,有三个函数分别是:
uasort 通过自定义函数对PHP数组的键值进行排序,并且保留原来的索引关系。
uksort 通过自定义函数对PHP数组的键名进行排序,并且保留原来的索引关系。
usort通过自定义函数对PHP数组的键值进行排序,并且删除原来的索 引关系,从零开始建立新的索引。
下面是二维排序:
/**
* @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
* @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 $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;
}
实例:
//################# 示例 #################
$arr = array(
array(
'name' => '学习',
'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 '';
print_r($arr); echo '
';
//注意:按照数字方式排序时 153 比 65 小
$temp = sortArr($arr,"name","SORT_ASC","type","SORT_DESC","size","SORT_ASC","SORT_STRING");
print_r($temp);
echo '
';
3. 多维数组转一维数组
function rebuild_array($arr){ //rebuild a array
static $tmp=array();
for($i=0; $i
实例:
$arr=array('123.html','456.html',array('dw.html','fl.html',array('ps.html','fw.html')),'ab.html');
// 定义一个三维数组,用来检测我们的函数
echo '';
print_r(rebuild_array($arr));
echo '
';
4. 从数组中删除空白的元素
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;
}
}
}
}
实例:
$a = array(array(3),2,'',array('',23),0);
array_remove_empty($a);
printr($a); // printr 函数请在本文中找
5. 获取多维数组下特定键下的值,并生成一维数组
function getall_by_key(array $arr, $key){
if (!trim($key)) return false;
preg_match_all("/"$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'));
以上就是本文的全部内容,php对于二维数组的相应操作介绍的很详细,希望对大家的学习有所帮助。
www.bkjia.comtrueTechArticlephp对二维数组进行相关操作(排序、转换、去空白等),php二维数组 技巧提示: array_keys($array) //返回所有键名 array_values($array) //返回所有...
php 空二位数组,php对二维数组进行相关操作(排序、转换、去空白等),php二维数组_PHP教程...相关推荐
- 详解二叉排序树(二叉搜索树、二叉查找树)以及Python实现相关操作
二叉排序树 引言 1.定义 2.性质 3.操作 3.1 查找 3.2 插入 3.3 生成 3.4 删除 引言 如何更加高效的完成对数据的查询和添加操作,例如↓↓↓ 给你一个数列 (7, 3, 10, ...
- (C语言版)栈和队列(二)——实现顺序存储栈和顺序存储队列的相关操作
http://blog.csdn.net/fisherwan/article/details/21479649 栈和队列都有两种实现方式,一种在之前已经写过了,是链式存储形式,另一种是顺序存储形式.也 ...
- 关于一维数组和二位数组的数组指针
1. 一维数组 c语言中, 数组占用的空间是一组连续的物理内存空间. 所以对于1维数组来讲,只需要知道数组头1个元素的地址, 就可以逐个地得出各个元素的值了. 例子: ...
- PHP中 如何将二位数组按某一个或多个字段值(升序/降序)排序?数字索引被重置,关联索引保持不变...
如何将二位数组按某一个或多个字段值(升序/降序)排序?数字索引被重置,关联索引保持不变 1.$arr=array( 2. array('id'=>1,'name'=>'will','age ...
- php 二位数组去掉重复,PHP 二维数组去掉重复值并保持原结构
PHP 二维数组去掉重复值并保持原结构 直接上代码,解释很详细 //二维数组去掉重复值 function arrunique($a){ foreach($a[0] as $k => $v){ / ...
- 二位数组的子数组最大值
该题是poj的1050号题:http://poj.org/problem?id=1050 同时在<编程之美> 2.15 小节 思想是: 1.把二维降到一维,把 同一列的若干个数的和算出来, ...
- php数组第二位,PHP将二位数组按照第二维的某个元素的值进行排序
//原始数组是这样的,希望能够按照第二维中的run_date升序或者降序进行排序: $arr=array( 0=>array( 'run_date'=>'2017-11-21', 'cou ...
- java二位数组biaoda_java基础 day14 数组 二维数组 冒泡排序 例题(正则表达式)
数组: 数组静态初始化及遍历 package wwl.array; import java.util.Arrays; /** * 数组的静态初始化及数组遍历 * */ public class Tes ...
- 2022-04-07 西安 javaSE(04) 方法可变参数、重载、递归,数组、冒泡排序、二分查找、动态操作,二维数组、jvm内存区域划分
方法 1.方法传递参数 形参是基本类型: 1.参数传递的内容是该基本类型的数据值. 2.对形式参数的改变不会影响实际参数的数据值 形参是引用类型: 1.参数传递的是地址值 2.对形 ...
最新文章
- 快速傅里叶变换Matlab示例
- 启用密码管理之前创建的用户连接Oracle报ORA-28002处理一则
- GARFIELD@04-14-2005
- Objective-C设计模式——单例Singleton(对象创建)
- RabbitMQ(三) HelloWorld 单生产者单消费者示例实现
- Junipre认证必了解产品:juniper Networks SSG550M
- 小心中中国移动“短号集群网”的招
- Rocketmq技术分享
- Python中Queue.get()方法阻塞,怎么办?
- 计算机类期刊投稿心得
- 传记-《硅谷钢铁侠》书中的精髓:从埃隆·马斯克的精神世界和人格特质里,找寻成功的秘密。
- ubuntu20.04使用USB转串口进行串口调试
- 北航计算机组成实验project4,北航fpga实验的报告.docx
- 高效能人士的七个习惯及亚马逊十四条领导力准则
- Java实现印刷体转手写体—妈妈再也不用担心我被罚抄作业了
- mac新建文件夹快捷键
- [渝粤教育] 浙江大学 2021秋冬管理学(施杰2) 参考 资料
- 如何轻松拥有属于自己的淘宝店手机客户端?
- 如何在 iOS 5 中使用 Block
- 小米3 android8,小米8 Miui10.3 最新稳定版(10.3.6.0 Android 9.0)稳定版 快过闪电 AI加持 高级工具箱 黑域 精简 流畅 省电 实用...
热门文章
- 详解 equals() 方法和 hashCode() 方法
- 匿名对象方案与实体对象方案对比
- 献给写作者的 Markdown 新手指南及语法
- set是无序集合,放入set中的元素通过iterator输出时候是无序的
- 设计模式之----------适配器模式
- UVa 1326 - Jurassic Remains
- volatile关键字(转)
- ylb:SQL 视图(View)基础
- 【原创】一款符合当前主流审美的Swing外观(Look and Feel)_测试版发布
- one-many和many-one的关系中的inverse的详解