PHP二维数组按照键值排序】的更多相关文章

/** * 按二维数组的键值排序 * @param unknown $array 二维数组 * @param unknown $key 二维数组的键值 * @param string $order 升序/降序 * @return multitype:unknown 返回排序后的数组 */ public static function arr_sort_in_key($array, $key, $order = "asc") { $arr_nums = $arr = array(); f…
在开发过程中,我们常常需要对二维数组按照数组的某个键来排序,这里提供两个封装好的方法,可以放到公共函数模块里以后需要的时候直接调用即可. /** * 二维数组按照键值降序排序 * @param array $arr 待排序数组 * @param string $key 键值 * @return mixed */ function sortByKeyDesc($arr, $key) { array_multisort(array_column($arr, $key), SORT_DESC, $ar…
//按照传入数组中的num倒序 public function numdesc($array,$key="num",$order="desc"){ $arr_nums=$arr=array(); foreach($array as $k=>$v){ $arr_nums[$k]=$v[$key]; } if($order=='asc'){ asort($arr_nums); }else{ arsort($arr_nums); } foreach($arr_num…
二维数组根据某个字段排序有两种办法,一种是通过sort自己写代码,一种是直接用array_multisort排序函数 一. 手写arraysort PHP的一维数组排序函数: sort  对数组的值按照升序排列(rsort降序),不保留原始的键 ksort 对数组的键按照升序排列(krsort降序) 保留键值关系 asort 对数组的值按照升序排列(arsort降序),保留键值关系 方法: 取出要排序的值组成值数组(为一维数组),按要求对值进行排序(保持键值关系),遍历值数组,按照键对应赋值给结…
由C语言联想到的:三重for循环实现对二维数组的按列排序,并且牵扯到数据结构. 自己写的,水平有限,本文属于原创,可能存在错误,忘指正~ function circle() { var a = [ [1, 4, 3, 2], [8, 6, 5, 7], [3, 7, 2, 5], [4, 8, 6, 1] ], t = 0, i, j, k; for(i = 0;i < 4;i++) { for(j = 0;j < 3;j++) { for(k = j + 1;k < 4;k++) {…
一.前言 在实际情况中,有时需要针对多维数组相同键值作相应的处理(四则运算.比较大小等)后才能够使用到实际情况中,现给出三维数组(多维数组可相应拓展)任意多个相同键值处理的函数,以备查阅. 二.代码 <?php //任意多个相同键值的数组合并 //预先将所要合并的数组组装成一个新的数组 $arr = array( '1' => array( '1' => array( "channelName" => "渠道1", "firstRe…
PHP 二维数组去掉重复值并保持原结构 直接上代码,解释很详细 //二维数组去掉重复值 function arrunique($a){ foreach($a[0] as $k => $v){ //二维数组的内层数组的键值都是一样,循环第一个即可 $ainner[]= $k; //先把二维数组中的内层数组的键值使用一维数组保存 } foreach ($a as $k => $v){ $v =join(".",$v); //将 值用 顿号连接起来 $temp[$k] =$v;…
Java一维与二维数组的拷贝与排序 目录 Java一维与二维数组的拷贝与排序 Arrays.sort() 一维数组升序排序 二维数组按行升序排序 二维数组按列升序排序 Java中的数组 Java中数组的基本性质 一维数组的拷贝 二维数组的拷贝 关于浅拷贝与深拷贝 一个例题 Arrays.sort() 一维数组升序排序 e.g.(demo.java) import java.util.Arrays; public class demo { public static void main(Strin…
<?php // 使用一个for循环将N*N的二维数组的所有值置1 $n = ; $a = []; ;$i<$n*$n;$i++){ $a[$i/$n][$i%$n] = ; } print_r($a);…
//准备 二维数组 //按一个字段排序 foreach($rank as $key=>$val){ $dos[$key] = $val['timelength']; } array_multisort($dos,SORT_ASC,$rank); var_dump($rank); //按两个字段先后排序 foreach($rank as $key=>$val){ $dos[$key] = $val['timelength']; $ds[$key] = $val['join_time']; } a…
在PHP中内置了很多对数组进行处理的函数,有很多时候我们直接使用其内置函数就能达到我们的需求,得到我们所想要的结果:但是,有的时候我们却不能通过使用内置函数实现我们的要求,这就需要我们自己去编写算法来对自己的想法进行实现.下面就讲述一下如何实现二维数组根据key进行排序. 实现方法: <?php /** * ======================================= * Created by Zhihua_W. * Author: Zhihua_W * Date: 2016/…
/** * @param $arrUsers * @return mixed *二维数组某个字段进行排序 */ function quick_sort($arrUsers) { $sort = array( 'direction' => 'SORT_DESC', //排序顺序标志 SORT_DESC 降序:SORT_ASC 升序 'field' => 'share_num', //排序字段 ); $arrSort = array(); foreach($arrUsers AS $k =>…
最近遇到一个问题,是关于json数据提交的时候,总是报出[object object]的错误,查了晚上需要资料,大部分的说法是json数据格式不规范导致的错误.一般建议说将dataType类型注释掉.但是都试了一下都没有解决.最后还怀疑是使用json_encode这个函数php版本的问题等等,都没有解决.主要我后台提交过来的是一个一维数组,而且还没有键值的一维数组.因此有同事说我的json数据格式不规范,必须要有键和值.这个我键蛋疼了,本来使用thinkphp的方式查出的数据就是二维数组,进行数…
/** * 针对二维数组下的某字段排序 * @param array $myarr 被排序数组 * @param string $sort_key 排序根据字段 * @param flag $sort_order 排序规则:SORT_ASC.SORT_DESC * @param flag $sort_type 排序类型:SORT_REGULAR.SORT_NUMERIC.SORT_STRING * @return array 排序后的数组 */ public function myarr_sor…
今天遇到了一个问题,就是从数据库中去除的数组为一个二维数组,现在就是想将二位数组进行去重,但是在php中,对于一个一维数组,我们可以直接使用php的系统函数array_unique,但是这个函数不能对多维数组进行去除重复,因此我需要自己写一个去除二维数组重复值的函数. function array_unique_fb($array2D){ foreach ($array2D as $v){ $v=join(',',$v);//降维,也可以用implode,将一维数组转换为用逗号连接的字符串 $t…
//二维数组,按照里面的age从大到小降序,代码如下 <?php header('Content-Type:text/html;Charset=utf-8'); $arrUsers = array( array('id' => 1,'name' => '张三','age' => 25,), array('id' => 2,'name' => '李四','age' => 23,), array('id' => 3,'name' => '王五','age'…
<?php //二维数组 $test["aa"] = array("id"=>"17","name"=>"汽车"); $test["bb"] = array("id"=>"18","name"=>"飞机"); $test["cc"] = array("…
php 判断数字在二维数组里 $arr = array( array('a', 'b'), array('c', 'd') ); in_array('a', $arr); // 此时返回的永远都是 false deep_in_array('a', $arr); // 此时返回 true 值 function deep_in_array($value, $array) { foreach($array as $item) { if(!is_array($item)) { if ($item ==…
思路: 1.获取我的位置,即:我的经纬度 2.各站点须有位置     即:排序对象有位置经纬度 3.查询要排序的站点列表 4.循环遍历计算  与我的距离 5.二维数组按 指定列(距离)排序 具体如下: 1.是小程序中的功能,因而小程序接口获取我的经纬度 wx.getLocation({ type: 'wgs84', success(res) { let latitude = res.latitude;//纬度 let longitude = res.longitude;//经度 //排序请求时…
array_sum(array_column($arr, 'num')); //获取二维数组 num字段的和 $arr = [ [ 'device_uid' => '123456', 'num' => '5', ], [ 'device_uid' => '123457', 'num' => '2', ], [ 'device_uid' => '123458', 'num' => '4', ], ]; echo '<pre>'; //先对二维数组进行处理,再对…
具体是这样的,如下一个二维数组,是从库中读取出来的. $user = array( 0 => array( 'id'    => 1, 'name'  => '张三', 'email' => 'zhangsan@sina.com', ), 1 => array( 'id'    => 2, 'name'  => '李四', 'email' => 'lisi@163.com', ), 2 => array( 'id'    => 5, 'name'…
思路很重要,最好的方法是查询时按这个字段给你排好,把问题丢给数据库,比如  order by age ,如果遇到中文时需要这样写(mysql) 如:select * from category order  by convert (name USING gbk) 另:程序在服务器打开一片空白,很可能是你的程序有生成缓存,但是没有写权限.(犯了两次,记一下) <?php //定义一个包含数字值的数组 $files = array("file11.txt","file22.…
<?php /** * 对查询结果集进行排序 * @access public * @param array $list 查询结果 * @param string $field 排序的字段名 * @param array $sortby 排序类型 * asc正向排序 desc逆向排序 nat自然排序 * @return array */ function list_sort_by($list,$field, $sortby='asc') { if(is_array($list)){ $refer…
while(list($key,$value) = each($arr)) { while(list($k,$v) = each($value)) { echo $key."==>".$k."===>".$v."<br>"; } } $msg = array( array( 'id'=>'45s', 'name'=>'jacks' ), array( 'id'=>'3s4', 'name'=>'ma…
function arraySortByElements($array2sort,$sortField,$order,$iscount=false) { $functionString=' if ('.($iscount?'true':'false').'){ if(count($a["'.$sortField.'"]) > count($b["'.$sortField.'"])) return 1*'.$order.'; if(count($a["…
<?php $multipleCommodity = array( =>array(), =>array() ); $arr1=array_column($multipleCommodity,'name'); $str1=implode(',',$arr1); echo $str1; ?>…
版权声明:本文为博主原创文章,未经博主允许不得转载. 最近工作中碰到一个问题,用PHP将一个二维数组按照二维数组中的各个项中的某个特定字段值合并成一维数组,如果有重复则将重复的合并成二维数组,生成的二维数组的第一维的键是特定字段的值,二维的键可以是随机索引,也可以是其中的另一个字段的值.其实这个需求经常会在工作中碰到,只是碰到的时候一个有重复的就直接用之前的覆盖后面的或者用之后的覆盖之前的,这样很容易就可以处理了.很少碰到这种有一维数组又有二维数组的情况,先上代码: $a = array( 0…
分享下PHP二维数组如何根据某个字段排序的方法. 从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条. 本文记录的要实现的功能类似于 MySQL 中的 ORDER BY,上个项目中有遇到这样的一个需求. 要求:从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条. 这个要求就不是 ORDER BY 能解决的问题了.因此翻看 PHP手册查找到了如下方法,做此笔记.…
主要用到的PHP函数 array_multisort() .先实现指定多维数组一个字段排序 根据二维数组的id值来排序,转换后的数组格式如下: function arraySortByOneField($data, $field, $sort = SORT_DESC) { $field = array_column($data, $field); array_multisort($field,$sort,$data); return $data; } 如: $data = array(0=>ar…
本文知识点(目录): 一维数组(一维数组的概念.优点.格式.定义.初始化.遍历.常见异常.内存分析以及常见操作(找最大值.选择排序.冒泡排序等等))    二维数组(二维数组的遍历.排序.查找.定义.初始化以及常见操作等等) 一.一维数组 1.前言 如果需要存储大量的数据,例如如果需要读取100个数,那么就需要定义100个变量,显然重复写100次代码,是没有太大意义的.如何解决这个问题,Java语言提供了数组(array)的数据结构,是一个容器可以存储相同数据类型的元素,可以将100个数存储到数…