原文: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中的动态变量的一个应用的更多相关文章

  1. Java中是否可以调用一个类中的main方法?

    前几天面试的时候,被问到在Java中是否可以调用一个类中的main方法?回来测试了下,答案是可以!代码如下: main1中调用main2的主方法 package org.fiu.test; impor ...

  2. C#中自己动手创建一个Web Server(非Socket实现)

    目录 介绍 Web Server在Web架构系统中的作用 Web Server与Web网站程序的交互 HTTPListener与Socket两种方式的差异 附带Demo源码概述 Demo效果截图 总结 ...

  3. 原生JS中apply()方法的一个值得注意的用法

    今天在学习vue.js的render时,遇到需要重复构造多个同类型对象的问题,在这里发现原生JS中apply()方法的一个特殊的用法: var ary = Array.apply(null, { &q ...

  4. 在Salesforce中可以对某一个Object的Standard Button或Link进行重写

    在Salesforce中可以对某一个Object的Standard Button或Link进行重写,来实现我们特定的逻辑过程,比如:在删除某个Object之前要判断该Object的某个Field的状态 ...

  5. 鼠标经过导航中li时,一个彩色模块跟着鼠标移动

    1.鼠标经过导航中li时,一个活动的li跟随鼠标移动,最终移动到鼠标的停留的位置.(如需鼠标离开后让活动的li回到初始位置,则用jq hover事件,当鼠标离开时,给活动的li设置left是0) 2. ...

  6. 在Linux中,如何取出一个字符串的前5位

    问: 在Linux中,如何取出一个字符串的前5位? 常用的一些方法如下: [tough@toughhou ~]$ str=abcdef [tough@toughhou ~]$ echo $str ab ...

  7. C++或者C#中如何拿到一个窗口的标题

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:C++或者C#中如何拿到一个窗口的标题.

  8. 在C#中我们能调用一个类的私有方法吗

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:在C#中我们能调用一个类的私有方法吗.

  9. 此集合已经采用方案 http 的地址。此集合中每个方案中最多只能包含一个地址。

    错误信息:此集合已经采用方案 http 的地址.此集合中每个方案中最多只能包含一个地址.如果服务承载于 IIS 中,则可以通过将“system.serviceModel/serviceHostingE ...

随机推荐

  1. 2017-2018-1 20155232 嵌入式C语言——时钟

    2017-2018-1 20155232 嵌入式C语言--时钟 任务: 在作业本上完成附图作业,要认真看题目要求. 提交作业截图 作弊本学期成绩清零(有雷同的,不管是给别人传答案,还是找别人要答案都清 ...

  2. 20155323刘威良《网络对抗》Exp9 Web安全基础

    20155323刘威良<网络对抗>Exp9 Web安全基础 实践目的 理解常用网络攻击技术的基本原理. 实践内容 Webgoat实践下相关实验. 实践过程 开启WebGoat WebGoa ...

  3. Verilog中的有符号计算之认知补码

    Verilog中的有符号计数,一般是自己定义的而不是像C语言之类的定义一个有符号变量就好了.所以,要想在FPGA的世界里随心所欲的进行有符号运算,必须先对补码有一个很好的认知,然后再注意Verilog ...

  4. Centos7下python3安装ipython

    一.通过压缩包安装ipython 1.下载ipython安装包 [root@localhost ~]# wget https://pypi.python.org/packages/79/63/b671 ...

  5. centos7 lldb 调试netcore应用的内存泄漏和死循环示例(dump文件调试)

    写个demo来玩一玩linux平台下使用lldb加载sos来调试netcore应用. 当然,在真实的产线环境中需要分析的数据和难度远远高于demo所示,所以demo的作用也仅仅只能起到介绍工具的作用. ...

  6. Jq_浏览器兼容性及其浏览器版本

    JQuery 中用 方法 jQuery.browser 来判断浏览器,返回值可以为: safari opera msie mozilla. 当然有时候我们还需要区分版本 这就要用到 jQuery.br ...

  7. ASP.NET Core采用Web Deploy方式发布到 Windows Server 2012 IIS上

    小白一枚,租个服务器,发布下网站,满足下好奇心,讲的粗糙,请大家谅解哈~ 1.配置服务器环境.这部分网上教程比较多. (1)开启IIS,参考其他博客的,担心的话,将Web服务器(IIS)全选哈~ (2 ...

  8. Unity游戏AI记录(2d横板为例)

    using System.Collections;using System.Collections.Generic;using UnityEngine; public class GeneralPeo ...

  9. 金蝶K3 11.0 WISE版本盘点机PDA条码数据采集器仓库条码管理

  10. Hyperledger Fabric v1.1.0安装记录(国内源版)

    1. 安装虚拟机     虚拟机软件采用:VirtualBox     操作系统选择:Ubuntu 14.04     内存:4G     CPU:2核     硬盘:20G     2.(可选)更改 ...