php中的动态变量的一个应用
原文:https://www.cnblogs.com/JimmyBright/p/9869168.html
某些情况下,可以代替switch语句,大大简化代码,非常有意思哦
$list = [
[
'type'=>'a',
'name'=>'jimmy0',
'sex'=>'mail'
],
[
'type'=>'b',
'name'=>'jimmy1',
'sex'=>'femail'
],
[
'type'=>'c',
'name'=>'jimmy2',
'sex'=>'mail'
],
[
'type'=>'a',
'name'=>'jimmy3',
'sex'=>'femail'
],
[
'type'=>'b',
'name'=>'jimmy4',
'sex'=>'femail'
],
[
'type'=>'a',
'name'=>'jimmy5',
'sex'=>'femail'
]
];
$aList = [];
$bList = [];
$cList = [];
foreach ($list as $item) {
$v = $item['type'].'List';
$$v = array_merge($$v,[$item]);//一般的做法就是在这里用switch语句了,这边就不需要了,一行代码搞定
}
var_export($aList);
echo PHP_EOL;echo PHP_EOL;
var_export($bList);
echo PHP_EOL;echo PHP_EOL;
var_export($cList);
echo PHP_EOL;echo PHP_EOL;
exit;
看一下输出:
array (
0 =>
array (
'type' => 'a',
'name' => 'jimmy0',
'sex' => 'mail',
),
1 =>
array (
'type' => 'a',
'name' => 'jimmy3',
'sex' => 'femail',
),
2 =>
array (
'type' => 'a',
'name' => 'jimmy5',
'sex' => 'femail',
),
) array (
0 =>
array (
'type' => 'b',
'name' => 'jimmy1',
'sex' => 'femail',
),
1 =>
array (
'type' => 'b',
'name' => 'jimmy4',
'sex' => 'femail',
),
) array (
0 =>
array (
'type' => 'c',
'name' => 'jimmy2',
'sex' => 'mail',
),
) Process finished with exit code 0
输出
php中的动态变量的一个应用的更多相关文章
- Java中是否可以调用一个类中的main方法?
前几天面试的时候,被问到在Java中是否可以调用一个类中的main方法?回来测试了下,答案是可以!代码如下: main1中调用main2的主方法 package org.fiu.test; impor ...
- C#中自己动手创建一个Web Server(非Socket实现)
目录 介绍 Web Server在Web架构系统中的作用 Web Server与Web网站程序的交互 HTTPListener与Socket两种方式的差异 附带Demo源码概述 Demo效果截图 总结 ...
- 原生JS中apply()方法的一个值得注意的用法
今天在学习vue.js的render时,遇到需要重复构造多个同类型对象的问题,在这里发现原生JS中apply()方法的一个特殊的用法: var ary = Array.apply(null, { &q ...
- 在Salesforce中可以对某一个Object的Standard Button或Link进行重写
在Salesforce中可以对某一个Object的Standard Button或Link进行重写,来实现我们特定的逻辑过程,比如:在删除某个Object之前要判断该Object的某个Field的状态 ...
- 鼠标经过导航中li时,一个彩色模块跟着鼠标移动
1.鼠标经过导航中li时,一个活动的li跟随鼠标移动,最终移动到鼠标的停留的位置.(如需鼠标离开后让活动的li回到初始位置,则用jq hover事件,当鼠标离开时,给活动的li设置left是0) 2. ...
- 在Linux中,如何取出一个字符串的前5位
问: 在Linux中,如何取出一个字符串的前5位? 常用的一些方法如下: [tough@toughhou ~]$ str=abcdef [tough@toughhou ~]$ echo $str ab ...
- C++或者C#中如何拿到一个窗口的标题
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:C++或者C#中如何拿到一个窗口的标题.
- 在C#中我们能调用一个类的私有方法吗
博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:在C#中我们能调用一个类的私有方法吗.
- 此集合已经采用方案 http 的地址。此集合中每个方案中最多只能包含一个地址。
错误信息:此集合已经采用方案 http 的地址.此集合中每个方案中最多只能包含一个地址.如果服务承载于 IIS 中,则可以通过将“system.serviceModel/serviceHostingE ...
随机推荐
- 2017-2018-1 20155232 嵌入式C语言——时钟
2017-2018-1 20155232 嵌入式C语言--时钟 任务: 在作业本上完成附图作业,要认真看题目要求. 提交作业截图 作弊本学期成绩清零(有雷同的,不管是给别人传答案,还是找别人要答案都清 ...
- 20155323刘威良《网络对抗》Exp9 Web安全基础
20155323刘威良<网络对抗>Exp9 Web安全基础 实践目的 理解常用网络攻击技术的基本原理. 实践内容 Webgoat实践下相关实验. 实践过程 开启WebGoat WebGoa ...
- Verilog中的有符号计算之认知补码
Verilog中的有符号计数,一般是自己定义的而不是像C语言之类的定义一个有符号变量就好了.所以,要想在FPGA的世界里随心所欲的进行有符号运算,必须先对补码有一个很好的认知,然后再注意Verilog ...
- Centos7下python3安装ipython
一.通过压缩包安装ipython 1.下载ipython安装包 [root@localhost ~]# wget https://pypi.python.org/packages/79/63/b671 ...
- centos7 lldb 调试netcore应用的内存泄漏和死循环示例(dump文件调试)
写个demo来玩一玩linux平台下使用lldb加载sos来调试netcore应用. 当然,在真实的产线环境中需要分析的数据和难度远远高于demo所示,所以demo的作用也仅仅只能起到介绍工具的作用. ...
- Jq_浏览器兼容性及其浏览器版本
JQuery 中用 方法 jQuery.browser 来判断浏览器,返回值可以为: safari opera msie mozilla. 当然有时候我们还需要区分版本 这就要用到 jQuery.br ...
- ASP.NET Core采用Web Deploy方式发布到 Windows Server 2012 IIS上
小白一枚,租个服务器,发布下网站,满足下好奇心,讲的粗糙,请大家谅解哈~ 1.配置服务器环境.这部分网上教程比较多. (1)开启IIS,参考其他博客的,担心的话,将Web服务器(IIS)全选哈~ (2 ...
- Unity游戏AI记录(2d横板为例)
using System.Collections;using System.Collections.Generic;using UnityEngine; public class GeneralPeo ...
- 金蝶K3 11.0 WISE版本盘点机PDA条码数据采集器仓库条码管理
- Hyperledger Fabric v1.1.0安装记录(国内源版)
1. 安装虚拟机 虚拟机软件采用:VirtualBox 操作系统选择:Ubuntu 14.04 内存:4G CPU:2核 硬盘:20G 2.(可选)更改 ...