PHP运用foreach神奇的转换数组(实例讲解)
要求:
将二维数组$arr转换为以‘time'和‘type'为下标、‘data‘为值的二维数组;
原数组:
$arr = array( 0 => array( 'data' => 100, 'type' => 1, 'time' => '2018-01-26', ), 1 => array( 'data' => 200, 'type' => 2, 'time' => '2018-01-26', ), 2 => array( 'data' => 300, 'type' => 2, 'time' => '2018-01-27', ), 3 => array( 'data' => 400, 'type' => 3, 'time' => '2018-01-27', ), 4 => array( 'data' => 500, 'type' => 4, 'time' => '2018-01-28', ), );
转换:
foreach ($arr as $key => $value) { $change[$value['time']][$value['type']] = $value['data']; }
结果:
array(3) { ["2018-01-26"] => array(2) { [1] => int(100) [2] => int(200) } ["2018-01-27"] => array(2) { [2] => int(300) [3] => int(400) } ["2018-01-28"] => array(1) { [4] => int(500) } }
以上这篇PHP运用foreach神奇的转换数组(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
浅谈PHP中关于foreach使用引用变量的坑
写PHP好多年,但仍然会犯低级错误,今天遇到个 foreach中引用变量时的坑,PHP版本为 5.6.12 代码如下: <?php $arr = ['a', 'b', 'c', 'd', 'e']; foreach ($arr as $i=>&$a) { $a = $a.'_'. $a; echo $a .'<br>'; } echo '<hr>'; foreach ($arr as $i=>$a) { echo $a .'<br>'; } e
-
PHP中for循环与foreach的区别
for循环与foreach的区别 foreach 依赖 IEnumerable. 第一次 var a in GetList() 时调用 GetEnumerator 返回第一个对象并赋给a, 以后每次再执行 var a in GetList() 的时候调用 MoveNext.直到循环结束. 期间GetList()方法只执行一次. + View Code for 循环靠下标定位. list[3] 相当于 *(list + 3). + View Code or 循环每次循环会调用 GetCoun
-
PHP在弹框中获取foreach中遍历的id值并传递给地址栏
1.php有时候我们需要再弹框中获取foreach中遍历的数据(例如id),在弹框中点击按钮并传递给地址栏跳转.那么应该怎么做呢. 2. 点击取现按钮,如果没有设置密码->弹框 3. 点击去设置,把用户名通过地址栏传递给别的页面. 4.使用onclick事件,把参数charge传递给function函数.function为弹窗函数. 5. 把username值传递过来.并给"去设置"赋值herf属性. 6. <div class="mask" >&
-
PHP foreach遍历多维数组实现方式
介绍 正常我们的foreach可以按顺序把一维数组里面每个 key => value 打印出来,但是如果是多维数组则需要循环在嵌套循环,或则递归实现,但是这些方式都不够灵活,因为在不确定该数组是几维的情况下,不可能永无止境的嵌套循环,如果采用递归到可以解决,但是如果只想使用foreach全部循环出来该如何实现? 实现方式 一 采用PHP本身自带的迭代器类 RecursiveIteratorIterator $test_arr = array(1,2,3,array(4,'aa'=>5,6,ar
-
PHP关于foreach复制知识点总结
PHP的foreach是一个非常整洁和切中要害的语言结构.仍然有些人不喜欢使用它,因为他们认为它是缓慢的.一个通常命名的原因是foreach复制它迭代的数组. 因此,一些人建议写: $keys = array_keys($array); $size = count($array); for ($i = 0; $i < $size; $i++) { $key = $keys[$i]; $value = $array[$key]; // ... } 而不是更直观和直接: foreach ($arra
-
PHP运用foreach神奇的转换数组(实例讲解)
要求: 将二维数组$arr转换为以'time'和'type'为下标.'data'为值的二维数组: 原数组: $arr = array( 0 => array( 'data' => 100, 'type' => 1, 'time' => '2018-01-26', ), 1 => array( 'data' => 200, 'type' => 2, 'time' => '2018-01-26', ), 2 => array( 'data' => 3
-
php将字符串转换为数组实例讲解
php将字符串转换为数组 在php中通过使用"explode函数",将字符串转换为数组,该函数的用法为"explode(delimiter,string)",其参数delimiter表示为边界上的分隔字符,参数string表示为输入的字符串. explode说明 explode ( string $delimiter , string $string [, int $limit ] ) : array 此函数返回由字符串组成的数组,每个元素都是 string 的一个
-
php中使用array_filter()函数过滤数组实例讲解
在数组中元素的过滤上,有一种方法比较特殊,结合了回调函数的使用,通过键值来与函数进行对应.相信说到这里很多人对于这种函数方法已经很好奇了,它就是array_filter() 函数的使用.接下来我们对该函数的定义.语法.参数.返回值.实例进行全面的介绍,具体过滤方法展现如下. 1.定义 array_filter用回调函数处理数组中的各个元素. 重点在于过滤(而不是新增)某个元素,当你处理到一个元素时,如果返回了false,那么这个元素将会被过滤掉.PS:保持了原来的索引. 2.语法 array a
-
C#托管内存与非托管内存之间的转换的实例讲解
c#有自己的内存回收机制,所以在c#中我们可以只new,不用关心怎样delete,c#使用gc来清理内存,这部分内存就是managed memory,大部分时候我们工作于c#环境中,都是在使用托管内存,然而c#毕竟运行在c++之上,有的时候,(比如可能我们需要引入一些第三方的c++或native代码的库,在Unity3d开发中很常见)我们需要直接在c#中操纵非托管的代码,这些non-managed memory我们就需要自己去处理他们的申请和释放了, c# 中提供了一些接口,完成托管和非托管之间
-
PHP中使用foreach()遍历二维数组的简单实例
第一种类型 想用foreach()遍历整个二维数组: $team = array('lk','ok'); $book = array('linux服务器配置与管理',$team); foreach($book as $k=>$val) //for $book each $value( as ) echo $k.'=>'.$val.''; 输出结果是: 0=>linux服务器配置与管理 1=>Array 当然,其实我是想要所有具体内容,而不是输出array... 所以应该采用如下做法
-
Java编程一维数组转换成二维数组实例代码
简介:由于经常在使用矩阵进行计算时,会首先将一维数组转为二维数组.因此,在这里记录一下,也希望对他人有帮助. 实例代码: package deal; public class ArryTest { public static void main(String[] args) { //创建一个一维数组 0,1,2,3...,10 double [] c= new double[10]; for (int i = 0; i < c.length; i++) { c[i]=i; } double[][
-
Angular.js 实现数字转换汉字实例代码
AngularJS 简介 AngularJS 是一个 JavaScript 框架.它可通过 <script> 标签添加到 HTML 页面. AngularJS 通过 指令 扩展了 HTML,且通过 表达式 绑定数据到 HTML. 下面通过本文给大家介绍Angular.js 实现数字转换汉字实例代码,具体代码如下所示: // 1.实现输入数字输出对应汉字,要求使用angularjs,不准使用$watch函数,for循环:提示:ng-change指令 <div ng-app="my
-
php实现xml转换数组的方法示例
本文实例讲述了php实现xml转换数组的方法.分享给大家供大家参考,具体如下: <?php $info = '<?xml version="1.0" encoding="utf-8" ?> <data> <GeocoderSearchResponse> <status>OK</status> <result> <location> <lat>39.94921<
-
C++面试题之进制转换的实例
C++进制转换的实例 一个面试题,要求输入十进制数,输出十六进制,可以使用printf打印%d,%c,%s来输出,但不能使用 %x 打印. 写了两种算法,还算比较简洁,粘贴在此. // 第一种算法,从低位到高位扫描移位,需要一个数组辅助倒序,一次性输出结果 #include <stdio.h> #define MAX_HEX_NUM 16 #define OUT_DATA_LEN sizeof(int)*2 // 2个16进制数表示1个字节 static char Hex_Char_Table
-
实例讲解Java编程中数组反射的使用方法
什么是反射 "反射(Reflection)能够让运行于JVM中的程序检测和修改运行时的行为."这个概念常常会和内省(Introspection)混淆,以下是这两个术语在Wikipedia中的解释: 内省用于在运行时检测某个对象的类型和其包含的属性: 反射用于在运行时检测和修改某个对象的结构及其行为. 从它们的定义可以看出,内省是反射的一个子集.有些语言支持内省,但并不支持反射,如C++. 内省示例:instanceof 运算符用于检测某个对象是否属于特定的类. if (obj inst
随机推荐
- 如何快速学习正则表达式
- 用CSS实现下拉菜单的多种方法
- WEB标准字体常规定义
- Powershell小技巧之判断是否包涵大小写
- Angular 4依赖注入学习教程之ClassProvider的使用(三)
- Vue.js 2.0 移动端拍照压缩图片预览及上传实例
- JavaScript实现的encode64加密算法实例分析
- 解析瀑布流布局:JS+绝对定位的实现
- PHP header()函数使用详细(301、404等错误设置)
- PHP微信分享开发详解
- C#中for循环、while循环循环执行的方法
- 详解 Mysql查询结果顺序按 in() 中ID 的顺序排列
- Linux/UNIX和Window平台上安装Mysql
- 浅谈javascript事件取消和阻止冒泡
- 微信支付仅能成功调用一次问题的解决方法(Android)
- 在IIS6中启用父路径,不被黑客利用
- SQL Server 2008安装图解(详细)
- spring结合struts的代码详解
- Ubuntu Server下MySql数据库备份脚本代码
- 将鼠标焦点定位到文本框最后(代码分享)