有关合并某一字段键值相同的数组的改进

/**
**关于参数的说明
**$key键值相同的键名
**$array代表原数组
**$start代表$array[0][$key]
**$newkey代表相同键值相同的键名
**/

function combine_same_val($array,$start,$key,$newkey){
    static $new;
    foreach($array as $k=>$v){
        if($v[$key]==$start){
            $new[$v[$newkey]][] = $v;
            unset($array[$k]);
            continue;
        }
    }
    sort($array);
    if(count($array)!==0){
        combine_same_val($array,$array[0][$key],$key,$newkey);
    }
    return $new;
}

时间: 2024-10-07 20:16:12

有关合并某一字段键值相同的数组的改进的相关文章

php中有关合并某一字段键值相同的数组合并

<?php function combine($array,$start,$key,$newkey){ static $new; //静态变量 foreach($array as $k=>$v){ if($v[$key]==$start){ $new[$v[$newkey]][] = $v; unset($array[$k]); continue; } } sort($array); if(count($array)!==0){ combine($array,$array[0][$key],$

array_keys::PHP所有键值组合新数组

在PHP的数组中,如果你想将数组中所有键值提取出来组成一个新的数组,可以使用array_keys 函数. 函数用法如: array_keys(array,value) W3C中是这样介绍的: array_keys() 函数返回包含数组中所有键名的一个新数组. 如果提供了第二个参数,则只返回键值为该值的键名. 如果 strict 参数指定为 true,则 PHP 会使用全等比较 (===) 来严格检查键值的数据类型. <?php $color=array("b"=>"

php数组键值操作和数组统计函数-函数

1.数组函数//作用:提供了很多官方写的很多有用的代码段,提高编写速度 1)数组的键值操作函数 array_values();//获取数组中的值 array_keys();//获取数组中的键 in_array();//检查一个值是否在数组中 array_flip();//键和值对调 array_reverse();//数组中的值反转 模拟获取key的数值<?php $arr=array ("name"=>"user1","age"=&

排序数组以及遍历普通对象的键值对以及如何遍历一个不同键值的对象数组

var array = [12,3,67,88,9,344,78,6]; var obj1 = {'name':'小林','age':'18','sex':'男'}; var obj2 = [{'name':'小明'},{'age':'33'},{'sex':'男'},{'sport':'篮球'}]; var keys = [],values = [];//遍历obj1用来存储 键和值的 var keys2 = [],values2 = [];//遍历obj2用来存储 键和值的 array.so

Json引入键值key&amp;value,数组,嵌套

Ajax&Json JSP页面 <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loo

根据某一键名对键值相同的分类

<pre>Array ( [0] => Array ( [shi] => 市辖区 [qu] => 曹子里 [url] => s120100 ) [1] => Array ( [shi] => 市辖区 [qu] => 杨村 [url] => s120100 ) [2] => Array ( [shi] => 辖县 [qu] => 蓟县 [url] => s120200 ) [3] => Array ( [shi] =&

PHP中数组的foreach遍历顺序跟键值的关系

近两天,在做一个项目,遇到一个该用数据存储ID做键值还是用数据排序SORT_NO做数组键值的问题,考虑到如果使用数据存储ID作为键值放入数组遍历数组时会不会影响排序的问题,经过查询与验证,得到答案:foreach遍历数组的顺序是按照值存入数组的先后顺序进行遍历的,此为线性遍历,不受数组键值的大小顺序影响. 下面写个简单的例子描述一下问题: 数据库存储user:   自增ID 排序号SORT_NO 值VALUE 1 3 张三 2 2 李四 3 1 王五 通过sql语句:“select ID,SOR

PHP合并2个数字键数组的值

先要了解一个基础知识点:PHP数组合并+与array_merge的区别分析 & 对多个数组合并去重技巧 <?php /** * PHP合并2个数字键数组的值 * * @param array $arr1 * @param array $arr2 * @return array * @author www.php-note.com */ function new_array_merge($arr1, $arr2) { if (!is_array($arr1) || !is_array($arr

PHP 按照多个键值给数组分组合并

简介: $array 为一堆数组,各数组键值为固定 $keys为分组依据,在$array中按照$keys所指定的键值将数组分组,并且将除$keys指定键值对应的值以外的值合并 1 function groupBy($array,$keys){ 2 $i = 0; 3 while($i < sizeof($array)){ 4 $x = sizeof($array) - 1; 5 while ($x > $i) { 6 //取数组交集并返回交集,保留键名 7 $temp = array_inte