数组键值 拆分 与合并

function array_column($input, $columnKey, $indexKey=null){
$columnKeyIsNumber = (is_numeric($columnKey)) ? true : false;
$indexKeyIsNull = (is_null($indexKey)) ? true : false;
$indexKeyIsNumber = (is_numeric($indexKey)) ? true : false;
$result = array();
foreach((array)$input as $key=>$row){
if($columnKeyIsNumber){
$tmp = array_slice($row, $columnKey, 1);
$tmp = (is_array($tmp) && !empty($tmp)) ? current($tmp) : null;
}else{
$tmp = isset($row[$columnKey]) ? $row[$columnKey] : null;
}
if(!$indexKeyIsNull){
if($indexKeyIsNumber){
$key = array_slice($row, $indexKey, 1);
$key = (is_array($key) && !empty($key)) ? current($key) : null;
$key = is_null($key) ? 0 : $key;
}else{
$key = isset($row[$indexKey]) ? $row[$indexKey] : 0;
}
}
$result[$key] = $tmp;
}
return $result;
}

$arr=array(

  array("id"=>1,"name"=>"2f23f"),

  array("id"=>2,"name"=>"2f23f")

);

$ids=array_column($arr,‘id‘);//将id取出来组成新数组

$new_arr=array_combine($ids,$arr);//重新拼接

/*

$new_arr=array(

  "1"=>array("id"=>1,"name"=>"2f23f"),

  "2"=>array("id"=>2,"name"=>"2f23f")

)

*/

时间: 2024-08-02 04:41:26

数组键值 拆分 与合并的相关文章

数组函数《拆分、合并、分解和接合》

本节介绍的数组处理函数能够完成一些更复杂的数组处理任务,可以把数组作为一个集合处理.例如,对两个货多个数组进行合并,计算数组间的差集或交集,从数组元素中提取一部分,以及完成数组的比较. ①函数array_slice() array_slice()函数的作用是在数组中根据条件取出一段值并返回.如果数组有字符串键,所返回的数组将保留键名.该函数可以设置4个参数,其函数的原型如下: array array_slice(array array , int offset [,int length[,boo

php数组键值排序

 代码片段如下:         $data = $villageDb->alias('a')->join('br_esf_village_expand as b on a.villageId=b.villageId', 'LEFT')->where($where)->limit($Page->firstRow . ',' . $Page->listRows)->select();         $houseDb=D("House");   

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

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

PHP数组键值使用单引号和双引号和无符号的区别

方法/步骤 1 第一种:$array['key']此单引号键值模式可以直接被解析为一个数组即$array 第二种:$array["key"]此双引号键值模式,先执行的是"key",判断是否有定义的PHP变量存在,在解析为数组即$array 第三种:$array[key]此为无单双引号键值模式,会先分析局部作用于是否有key键值定义的常量存在,即使用define('key','val'),然后解析数组即$array 2 其他情况:例如$array["$a&q

遍历php的_SERVER数组键值信息

$_SERVER 是一个包含了诸如头信息(header).路径(path).以及脚本位置(script locations)等等信息的数组.这个数组中的项目由 Web 服务器创建.不能保证每个服务器都提供全部项目:服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目. [1] <?php foreach ($_SERVER as $key => $value) { var_dump($key . '===' . $value. '<br/>'); } ?> "

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

数组里边根据键值进行合并处理

<script> var examViewList = [{ "examItemIds" : 221, "timePoint" : "20" }, { "examItemIds" : 240, "timePoint" : "40" }, { "examItemIds" : 221, "timePoint" : "30"

php合并数组并保留键值的方法

php合并数组并保留键值的方法例子1,数组使用字符串键名,相同的键名会被后面的覆盖<pre><?php$arr1 = array('name'=>'fdipzone');$arr2 = array('name'=>'terry'); $result = array_merge($arr1, $arr2); print_r($result);?></pre>输出:<pre>Array( [name] => terry)</pre>

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

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