首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如果不使用foreach,如何比较数组键

如果不使用foreach,如何比较数组键
EN

Stack Overflow用户
提问于 2011-10-14 19:19:43
回答 2查看 175关注 0票数 0

我得到了一个多维数组$finalUserElearningLesson。我想要做的是将它的键与另一个数组的键进行比较。if($finalUserElearningLesson[$i][$field] == $field)实际上不是比较键,而是比较值。如何比较这些密钥?

代码语言:javascript
运行
AI代码解释
复制
for($i=0;$i<count($finalUserElearningLesson);$i++) {
$uFields = array();
foreach($fields as $field) {
  if($finalUserElearningLesson[$i][$field] == $field){
    $uFields[$field] = $finalUserElearningLesson[$i][$field];
  }
}

fputcsv($output, $uFields);  
}    
EN

回答 2

Stack Overflow用户

发布于 2011-10-14 19:23:38

函数array_keys将为您的数组提供一个键的数组,这对您有帮助吗?

票数 0
EN

Stack Overflow用户

发布于 2011-10-14 19:37:52

如果我理解了你这一次要做什么,这可能更符合我的想法。对于$finalUserElearningLesson中的每一行,它将输出该行和$fields中都存在的字段(键)。

代码语言:javascript
运行
AI代码解释
复制
$fields = array('field1' => 'value1', 'field2' => 'value2', 'field4' => 'value4');
$fieldsKeys = array_keys($fields);

$finalUserElearningLesson[0] = array('field1' => 'value1',
                                     'field2' => 'value2',  
                                     'field3' => 'value3');
$finalUserElearningLesson[1] = array('field2' => 'value2',  
                                     'field3' => 'value3');
$finalUserElearningLesson[2] = array('field1' => 'value1',
                                     'field3' => 'value3',
                                     'field4' => 'value4');

for($i=0;$i<count($finalUserElearningLesson);$i++) {

    // annoyingly array_intersect_key() returns values, not keys

    // get the keys in $finalUserElearningLesson[$i]
    $lessonKeys = array_keys($finalUserElearningLesson[$i]);

    // get the keys that exist in $finalUserElearningLesson[$i]
    // and $fields
    $keysInBoth = array_intersect($fieldsKeys, $lessonKeys);

    echo "Keys in row $i: ", implode(',', $keysInBoth), "\n";
}

将输出:

代码语言:javascript
运行
AI代码解释
复制
Keys in row 0: field1,field2
Keys in row 1: field2
Keys in row 2: field1,field4
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7772522

复制
相关文章
使用shell并行执行多个脚本
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wzy0623/article/details/53906996
用户1148526
2019/05/25
3.4K0
SparkSQL并行执行多个Job的探索
Spark是以TaskSetManager为单元来调度任务的。通常情况下,任务队列中只会有一个TaskSetManager,而通过多线程提交多个Job时,则会有多个TaskSetManager被丢到任务队列中。在有空闲资源的情况下,谁会从队列里被取出来执行就取决于相应的调度策略了。目前,Spark支持FIFO和FAIR两种调度策略。
大数据学习与分享
2022/05/19
8560
SparkSQL并行执行多个Job的探索
SparkSQL并行执行多个Job的探索
Spark是以TaskSetManager为单元来调度任务的。通常情况下,任务队列中只会有一个TaskSetManager,而通过多线程提交多个Job时,则会有多个TaskSetManager被丢到任务队列中。在有空闲资源的情况下,谁会从队列里被取出来执行就取决于相应的调度策略了。目前,Spark支持FIFO和FAIR两种调度策略。
大数据真好玩
2021/11/16
1.5K0
SparkSQL并行执行多个Job的探索
npm并行&串行执行多个scripts命令
通过npm run <commander> 可以运行 package.json 中脚本,Npm 命令不能提供立即运行多个脚本的方式,同时运行需要打开多个终端窗口
奋飛
2020/05/28
6.8K0
npm并行&串行执行多个scripts命令
通过npm run 可以运行 package.json 中脚本,Npm 命令不能提供立即运行多个脚本的方式,同时运行需要打开多个终端窗口
奋飛
2021/08/30
1.6K0
SparkSQL并行执行多个Job的探索
Spark是以TaskSetManager为单元来调度任务的。通常情况下,任务队列中只会有一个TaskSetManager,而通过多线程提交多个Job时,则会有多个TaskSetManager被丢到任务队列中。在有空闲资源的情况下,谁会从队列里被取出来执行就取决于相应的调度策略了。目前,Spark支持FIFO和FAIR两种调度策略。
Spark学习技巧
2022/03/14
1.9K0
SparkSQL并行执行多个Job的探索
js实现多个异步任务的串行和并行执行(add/sum)
参考代码:https://github.com/shfshanyue/Daily-Question/issues/662#issuecomment-885993395
蓓蕾心晴
2022/08/28
1.8K0
并发与并行的区别_并发执行和并行执行
学习多线程的时候会遇到一个名词:并发。这是属于操作系统中的词汇,需要了解并发和并行的区别,从网上搜集了几种说法帮助理解。 一: 并发是指一个处理器同时处理多个任务。 并行是指多个处理器或者是多核的处理器同时处理多个不同的任务。 并发是逻辑上的同时发生(simultaneous),而并行是物理上的同时发生。 来个比喻:并发是一个人同时吃三个馒头,而并行是三个人同时吃三个馒头。 二: 并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行。就好像两个人各拿一把铁锨在挖坑,一小时后,每人一个大坑。所以无论从微观还是从宏观来看,二者都是一起执行的。
全栈程序员站长
2022/11/04
1.4K0
并发与并行的区别_并发执行和并行执行
并行执行任务
在app列表首页,展示多个item,并有分页;而每个item里后台都会调用一个http请求,判断当前item的状态
LiosWong
2018/10/29
7130
并行执行(二)、multiprocessing
multiprocessing包是Python中的多进程管理包。它与 threading.Thread类似,可以利用multiprocessing.Process对象来创建一个进程。该进程可以允许放在Python程序内部编写的函数中。该Process对象与Thread对象的用法相同,拥有is_alive()、join([timeout])、run()、start()、terminate()等方法。属性有:authkey、daemon(要通过start()设置)、exitcode(进程在运行时为None、如果为–N,表示被信号N结束)、name、pid。此外multiprocessing包中也有Lock/Event/Semaphore/Condition类,用来同步进程,其用法也与threading包中的同名类一样。multiprocessing的很大一部份与threading使用同一套API,只不过换到了多进程的情境。这个模块表示像线程一样管理进程,这个是multiprocessing的核心,它与threading很相似,对多核CPU的利用率会比threading好的多。
狼啸风云
2022/07/27
5280
并行执行(二)、multiprocessing
并行执行任务思考
这篇文章由之前的并行执行任务发展而来,如何生成task,在之前的文章中,生成task方式如下:
LiosWong
2018/10/29
4850
[python]map方法与并行执行
由上可见, 调用map, 相当于顺序调用了add(1,4), add(2,5), add(3,6)方法; 一行代码实现了方法的迭代调用, 简单快捷。 那如果再优化一下,实现并行调用add方法, 应该怎么做呢?在python里也好实现, 利用multiprocessing模块就可以。
py3study
2020/01/13
1.3K0
testng执行多个suite
由于testng.xml中只能设置一个<suite>标签,就无法创建多个测试集,通过<suite-files >标签可以实现允许多个测试集。
未来sky
2018/08/30
1.8K0
testng执行多个suite
Python爬取多个网页
最近学到了一个新鲜玩意,Python网页爬取数据脚本,今天我们就来试一试,python爬取数据到底有多方便。
小颜同学
2023/08/21
2900
Python爬取多个网页
Oracle优化08-并行执行
在讨论Oracle的性能问题时,通常要假设一个前提,那就是这个系统是OLTP还是OLAP(或者说数据仓库系统)。 只有在这个前提下,讨论一些性能问题才有意义,因为这两类系统太不一样了,甚至很多技术是相悖的。
小小工匠
2021/08/16
3780
Razor语法
  Razor作为一种全新的模板被MVC3和WebMatrix使用。尽管目前还存在一定性能上面的问题,但一直不喜欢WebForm标签式写法的人已经看到了福音。Razor在减少代码冗余、增强代码可读性和vs 智能感知方面,都有着突出的优势。本文将结合示例,总结出Razor的基本用法,以便于更多人了解Razor、使用Razor。
拓荒者IT
2019/09/26
1.1K0
Razor语法
同一套代码部署多个实例来并行完成某项任务,且避免重复执行
我经常会碰到一些耗时较长的任务,譬如更新5千万条表数据中的某个字段,代码中可以通过分页依次读取db,然后更新即可。但是耗时极长,那么能否通过将代码部署多个实例,譬如启动多个docker来并行执行任务,横向扩展,这样就能大幅减少耗时。
天涯泪小武
2019/01/17
1.2K0
具有依赖关系的并行操作执行
今天看到看到一篇MSDN文章《Parallelizing Operations With Dependencies》,作者是微软Parallel Computing Platform团队的一个开发经理。文中提供出一种用于并行执行一组具有依赖关系的操作的解决方案,这不由得想起我在一年之前写的一个具有相同的功能的组件。于是翻箱倒柜找了出来,进行了一些加工,与大家分享一下。 一、问题分析 我们知道,较之串行化的操作,并行计算将多个任务同时执行,从而充分利用了资源,提高了应用的整体性能。对于多个互不相干的操作,我们
蒋金楠
2018/01/16
2.7K0
具有依赖关系的并行操作执行
Razor 语法快速参考 Razor 语法快速参考
本文引自:http://haacked.com/archive/2011/01/06/razor-syntax-quick-reference.aspx
跟着阿笨一起玩NET
2018/09/19
9900
点击加载更多

相似问题

Perl将多个网页并行化

11

并行执行多个NSOperations

12

并行执行多个函数

22

Android -并行执行多个任务

10

并行执行多个异步任务

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文