- 浏览: 612105 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
kangh:
转载的也拿出来 都不试一下 完全错误
Nginx+ffmpeg的HLS开源服务器搭建配置及开发详解 -
wangtxlz:
#cd builders/cmake#cmake .系统提示命 ...
crtmpserver流媒体服务器的介绍与搭建 -
hnraysir:
支持支持支持
手机Android音视频采集与直播推送,实现单兵、移动监控类应用 -
wuent:
把web服务器和php框架绑定到一起?真不建议这样。。。
Swoole(PHP高级Web开发框架) -
wuent:
有更详细的性能比较吗?php,python,java
PHP中的(伪)多线程与多进程
<?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.
*
* sysSortArray($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 sysSortArray($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 values according to the keys and put them to array.
foreach($ArrayData AS $Key => $Info)
{
foreach($KeyNameList AS $KeyName)
{
${$KeyName}[$Key] = $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',
),
);
print_r($arr);
//注意:按照数字方式排序时 153 比 65 小
$temp = sysSortArray($arr,"name","SORT_ASC","type","SORT_DESC","size","SORT_ASC","SORT_STRING");
print_r($temp);
?>
其他相关排序函数:
sort ( array &$array [, int $sort_flags] )
该函数会对目标数组进行排序,各元素按值由低到高的顺序排列.注意,该函数参数是按引用传递的, 它并不是返回排序后的数组.相反,它只是对当前数组排序,不论结果如何都不返回任何值.
注意: 本函数为 array 中的单元赋予新的键名.这将删除原有的键名而不仅是重新排序.
$arr = array(9,5,2,6,8,4,3,1); sort($arr); print_r($arr); ?>
输出:(可以看到键值关联不再保持)
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 8 [7] => 9 )
asort ( array &$array [, int $sort_flags] )
本函数对数组进行排序,数组的索引保持和单元的关联.主要用于对那些单元顺序很重要的结合数组进行排序. 同样是按引用传递的,没返回值.
<?php $arr = array(5,2,6,8,4,1); asort($arr); print_r($arr); ?>
输出(可以看到键值保持不变):
Array ( [5] => 1 [1] => 2 [4] => 4 [0] => 5 [2] => 6 [3] => 8 )
rsort ( array &$array [, int $sort_flags] )
本函数类似sort函数, 对数组进行逆向排序(最高到最低)。
注: 本函数为 array 中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。
如果成功则返回 TRUE,失败则返回 FALSE。
arsort ( array &$array [, int $sort_flags] )
本函数对数组进行逆向排序,数组的索引保持和单元的关联。主要用于对那些单元顺序很重要的结合数组进行排序。arsort()函数与asort()相同,只是它以相反的顺序(降序)对数组元素排序。
如果成功则返回 TRUE,失败则返回 FALSE。
ksort ( array &$array [, int $sort_flags] )
ksort和sort的区别就是对数组按照键名排序而不是按值排序,保留键名到数据的关联.本函数主要用于关联数组. 如果成功则返回 TRUE,失败则返回 FALSE。
krsort ( array &$array [, int $sort_flags] )
见ksort,该函数同ksort只是把ksort后的结果逆序排序而已。
natsort ( array &$array )
本函数实现了一个和人们通常对字母数字字符串进行排序的方法一样的排序算法并保持原有键/值的关联,这被称为“自然排序”.本算法和通常的计算机字符串排序算法(用于 sort())的区别见下面示例.
如果成功则返回 TRUE,失败则返回 FALSE.
php手册中有个非常经典的例子
<?php $array1 = $array2 = array("img12.png", "img10.png", "img2.png", "img1.png"); sort($array1); echo "Standard sorting\n"; print_r($array1); natsort($array2); echo "\nNatural order sorting\n"; print_r($array2); ?>
上例将输出:Standard sorting
Array ( [0] => img1.png [1] => img10.png [2] => img12.png [3] => img2.png )
Natural order sorting
Array ( [3] => img1.png [2] => img2.png [1] => img10.png [0] => img12.png )
还有些数组排序函数以u
(user)开头的, 都是些用户自定义排序函数。时间原因这就不多写了。
发表评论
-
nginx、php-fpm默认配置与性能–TCP socket还是unix domain socket
2015-04-02 11:14 1476前几天看到一篇博客,提到php所在服务器在大并发情况下,频 ... -
使用socket方式连接Nginx优化php-fpm性能
2015-04-01 13:49 0Nginx连接fastcgi的方式有 ... -
PHP中include和require的区别详解
2015-04-01 08:32 01、概要 require()语句的性能与includ ... -
PHP 中cookie 和 session 的分析
2015-03-31 12:33 0HP 中cookie 和session 的分析 ... -
php 经典的算法题你懂的
2015-03-31 12:31 0有5个人偷了一堆苹果,准备在第二天分赃。晚上,有一人遛出来, ... -
PHP最常用的2种设计模式工厂模式和单例模式介绍
2015-03-31 12:26 0简单来说,PHP单例模式就是一个功能用一个类来实现,并且在整 ... -
PHP 数据类型
2015-03-31 12:23 0PHP 数据类型 PHP 支持八种原始类型(type)。 ... -
PHP mcrypt启用、加密以及解密过程详解
2015-03-30 11:32 1467Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密, ... -
PHP扩展实现类扩展
2015-03-27 14:08 584在第一篇文章中,我们所开发的扩展是单个函数,本篇文章看一下 ... -
PHP高级工程师的面试题
2015-03-06 10:35 01. 基本知识点 HTTP协议中几个状态码的含义:1x ... -
PHP面试中常见的面试试题与算法例子
2015-03-05 14:14 0下面是四道比较常见的题目,主要考察的是对字符串函数以及文件操 ... -
PHP实现四种常用的排序算法
2015-03-05 14:09 0插入排序(Insertion Sort),选择排序(Sele ... -
用swagger-php/ui做API测试
2015-02-13 09:46 3661功能: 1 swagger-php根据自定义的规则生成API ... -
app后端设计(0)--总目录
2015-01-23 18:03 0做了3年app相关的系统架构,api设计,先后在3个创业公司中 ... -
PHP中eAccelerator、memcached、xcache、APC 4个加速、缓存扩展的区别
2015-01-23 10:26 922这篇文章主要介绍了PHP ... -
PHP内核探索:zend_parse_parameters函数
2015-01-16 14:14 975最简单的获取函数调用者传递过来的参数便是使用zend_pars ... -
实战:用C写php扩展(二)
2015-01-16 11:05 1011一、前言 在我的上一篇文章“实战:用C写php扩展(一)”里介 ... -
实战:用C写php扩展(一)
2015-01-16 11:04 10221、 前言 首先,确保你的机器安装了apache和php。假 ... -
JavaScript or PHP 来检测移动设备
2014-09-22 10:04 637iPhone & iPod Detection T ... -
YII Framework学习教程-YII的Modules(模块化)
2014-08-27 11:04 761一个相对来说大的项目。如果按照yii生成的 ...
相关推荐
一维数组排序可以使用asort、ksort等一些方法进程排序,相对来说比较简单。二维数组的排序怎么实现呢?使用array_multisort和usort可以实现,下面跟着小编来学习php中二维数组排序问题方法详解
本文将深入探讨如何在PHP中对二维数组按数组值进行排序,并提供一个实际的代码示例。 二维数组,顾名思义,是数组中的数组,可以理解为表格形式的数据结构,每一行是一个一维数组,所有行数组组成一个二维数组。...
php对二维数组按数组键值进行排序 @param array $array 要排序的数组 @param string $key 排序依据字段 @param string $order 排序方式,0为降序,1为升序
在PHP编程中,处理数组是常见的任务之一...这个方法可以应用于任意深度的多维数组,使其转换为一维数组,方便后续处理和操作。在处理复杂数据结构时,掌握递归思想是至关重要的,它可以帮助我们有效地解决类似的问题。
根据给定文件的信息,本文将深入探讨PHP处理二维数组的各种方法,包括去除重复项、排序、转换以及去除空白等操作。 ### 一、去除二维数组中的重复项 在PHP中,处理二维数组的一个常见需求是去除其中的重复项。一个...
array_multisort会根据这些参数重新排序数组的值。 在多维数组排序的上下文中,array_multisort可以用来根据二维数组中的某个子数组的特定字段进行排序。例如,假设我们有一个二维数组,每个子数组包含地区信息以及...
标题中的"json_ksort 二维数组键值排序源码"指的是一种自定义的方法,可能是为了对包含JSON数据的二维数组进行键值排序而编写的一段代码。这种方法可能通过递归或者其他策略来处理嵌套的键值对,确保整个结构被正确...
### PHP 二维数组排序知识点详解 #### 一、概述 在 PHP 编程中,处理数据经常需要对数组进行排序,尤其是对二维数组的排序。本文档介绍了一种使用 `array_multisort()` 函数来实现多维数组排序的方法,并通过一个...
PHP实现一维数组的组合算法,欢迎下载和评论。
本文实例总结了php一维二维数组键排序方法。分享给大家供大家参考。具体方法如下: 在php中数组排序一直是一个老生常谈的问题,下面我们来集中讲一下关于在php中一维数组与二维数组排序的实现程序,相信对大家有一定...
二、一维数组转二维数组的方法 要将一维数组转换为二维数组,我们需要遍历一维数组,然后将每个元素插入到新的二维数组中作为一个新数组。以下是一个简单的实现方法: ```php <?php // 原始一维数组 $asr[1] = ...
c语言从互联网上收集的用于采访的常用PHP算法。冒泡、快速排序、二进制排序、二维数组去重、二维数组排序_php-suanfa.zip
在IT领域,尤其是在Web开发中,二维数组常常用于存储复杂的数据结构,比如表格数据或层级关系数据。在本例中,我们关注的是如何利用JQuery处理一个变长的二维数组,以便于提交多个相关联的数据。这样的场景常见于...
### PHP中的二维数组去重方法 给定的代码片段展示了如何在PHP中定义一个函数`unique_arr`,用于去除二维数组中的重复项。这个函数接受三个参数: 1. `$array2D`:待处理的二维数组。 2. `$stkeep`(布尔值):如果...
总结来说,array_multisort()和usort()都是对PHP中二维数组进行排序的有效方法。array_multisort()适用于需要根据其他数组的排序结果来重新排列原数组元素的场景,而usort()则提供了更多的灵活性,允许我们在回调...
php 笛卡尔积二维数组矩阵算法 生成多个组合 php 笛卡尔积二维数组矩阵算法 生成多个组合 php 笛卡尔积二维数组矩阵算法 生成多个组合 php 笛卡尔积二维数组矩阵算法 生成多个组合 php 笛卡尔积二维数组矩阵...
本篇文章将详细讲解如何使用PHP的`array_multisort()`函数来对二维数组按照指定键值进行排序,并结合实例进行解析。 首先,让我们理解一下`array_multisort()`函数的作用。`array_multisort()`是PHP内建的一个函数...
在php中是有multi_sort函数可供调用的,但是在js中似乎没有这种函数,但是没关系 ,因为js的sort函数其实也提供了参数可以定义比较函数进行二维数组的排序。 1、按数值排序假设有如下数组 代码如下:var arr