2016php技术面试题,一个php的面试题,大家看看
看了看,之前的那俩答案都是不能用的。LZ真是苦命。。
我对子数组的定义是像 ['a', 'b', 'c', 'a'] 这样的单个数组。
我的答案:
$result = array();
foreach ($listData as $line) {
//子数组内部去重,再组装回原来的格式
$result[] = array_unique($line);
}
//子数组先去重再合并的结果数量 和 先合并子数组再去重的结果数量 做比较。
//如果是相同的,意味着不存在跨子数组的重复,只存在子数组内部重复,所以`True`
var_dump(count(array_merge(...$result)) === count(array_unique(array_merge(...$listData))));
我这个答案调用系统函数次数比较多,看起来简洁一些,但是PHP array_xxx 这类函数很大一部分性能是不具备优势的,如果不用这些函数,能相对程度提高运行效率。
目前, @springhack 的效率是最高的。而且在各种情形下都能保持最高效率。
方便理解的辅助参考信息:
原始数据:
$listData = [
'111' => ['a', 'b', 'c', 'a'],
'222' => ['d', 'e', 'f', 'f', 'b'],
'333' => ['g', 'h'],
'444' => ['i', 'j']
];
然后 $result 最终是这样的:
$listData = [
'111' => ['a', 'b', 'c'],
'222' => ['d', 'e', 'f', 'b'],
'333' => ['g', 'h'],
'444' => ['i', 'j']
];
子数组先去重再合并的结果
Array
(
[0] => a
[1] => b
[2] => c
[3] => d
[4] => e
[5] => f
[6] => b
[7] => g
[8] => h
[9] => i
[10] => j
)
用于和上面进行数量(数组元素数量)比较的,所谓的“先合并子数组再去重的结果”:
Array
(
[0] => a
[1] => b
[2] => c
[4] => d
[5] => e
[6] => f
[9] => g
[10] => h
[11] => i
[12] => j
)
2016php技术面试题,一个php的面试题,大家看看相关推荐
- 一个经典编程面试题的“隐退”
[转] 一个经典编程面试题的"隐退" 作者:童燕群 | 发布日期:三月 22, 2014 本文由 伯乐在线 – 王伯 翻译自 The Noisy Channel. 面试程序员很困难 ...
- 3个CCIE对一个工程师的面试题(远去之路无比艰辛啊!)
3个CCIE对一个工程师的面试题这是某人10月初的一个面试题目,售后职位:高级网络工程师.面试官是三位CCIE,面试过程历时2个多小时,印象非常深刻.现在这个offer基本已经确定了,事主还在考虑诸如 ...
- 大学c语言基本程序,一个大学C语言试题的简单实现--员工信息管理程序
一个大学C语言试题的简单实现,供参考. 题目: 员工信息管理程序 主要用结构体数组实现,用结构体表示每项记录,数据为:员工编号.姓名.性别.年龄.工龄.职务.部门.住址. 设计各个函数,分别实现以下功 ...
- 谷歌给 Max Howell 出的一个简单算法面试题:翻转二叉树
这个问题是谷歌给 Max Howell 出的一个算法面试题 谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了. 谷歌给 Max ...
- 江西省一级计算机考试试题,江西省计算机一级考试试题
计算机一级考试试题 江西省计算机一级考试试题 一.选择题 1.微机中1K字节表示的二进制位数是( ). A.1000 B.8x1000 C.1024 D.8x1024 2.计算机硬件能直接识别和执行的 ...
- 软考新思维--2017年上半年信息系统项目管理师上午试题分析与答案(试题6-10题)...
2017年上半年信息系统项目管理师上午试题分析与答案(试题1-5题) 6.()不是获取需求的方法. A.问卷调查 B.会议讨论 C.获取原型 D.决策分析 [软考新思维] 需求是获取的得来的,不是决策 ...
- 腾讯python面试题_面试题 | 腾讯数据分析面试题分享
原标题:面试题 | 腾讯数据分析面试题分享 annatx | 作者 高级农民工 | 来源 今天给各位分享两道数据分析试题, 这是腾讯数据分析面试官在面试时考察候选人喜欢出的题,属于硬性技能考察题目,特 ...
- 一次Java解析数独的经历,java面试题,java高级笔试题
写在最前面,我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家.扫码加微信好友进[程序员面试学习交流群],免费领取.也欢迎各位一起在群里探讨技术. 1. ...
- 上海市高校计算机一级考试试题,上海市计算机一级考试试题
上海市计算机一级考试试题 2016年第一计算机考试时间是3月26-29日,为帮助同学们进一步复习,下面小编为大家整理了一级考试题,希望能给各位考生带来帮助! 1.叙述WORD标题栏的主要作用? 答:W ...
最新文章
- 开工快乐!AI内参邀你继续学习,并送上50元优惠券!
- C中printf函数的实现原理
- Asp.net的用户管理
- NodeJS实现TCPSocket(套接字)服务器和客户端
- cn101388899 一种web服务器前后台关联审计方法及系统,启明星辰数据库审计精确识别操作者...
- 如何为每个URL连接设置自定义SSLSocketFactory的TrustManager
- c语言两个浮点数相加_C语言中两个浮点数或双精度数的模数
- java 对象视图框架_Stripes视图框架Java对象属性验证和prototype.js Ajax的测试
- 二. 2d-2d 对极约束 估计相机位姿pose(R,t)
- java script eval_「eval」js中的eval方法详解(一)–eval方法的初级应用 - seo实验室...
- webkit内核浏览器的CSS写法
- 跟我学算法-集成算法
- 电学计算机专业英语,电器电子英语词汇(O)
- coldfusion_ColdFusion中的数据结构简介
- 计算机无法与internet同步时间,win7系统能上网可是无法同步Internet时间的解决方法...
- 爬虫获取微博首页热搜
- 虚拟机恢复初始化设置
- AutoCAD 2007官方.NET教程(一)(C#版)
- 光猫超级管理员账号密码和Telnet登陆
- 【hackerrank】World CodeSprint 11 T6
热门文章
- product thumbnail区域未能显示的原因分析
- debug LUW3 - callback workflow - ABAP工作流的调试(第三部分)
- NULL和INITIAL的区别 and database interface
- use web IDE to commit change to git
- Docker入门系列之三:如何将dockerfile制作好的镜像发布到Docker hub上
- 基于java 工单管理_实训任务工单1-2(编写规范Java代码) 实训任务工单1-2(编写规范Java代码).docx_学小易找答案...
- 安装python3.7.0的步骤_CentOS7下简单安装python3.7.0步骤
- 如何定义一个类对象并用next()的方法使用_深入理解-可迭代对象、迭代器(20个为什么)...
- java加载自己写的类_java 自定义类加载器从磁盘或网络加载类
- 将两个有序链表合并为一个链表任然有序C语言