问题标签 [array-intersect]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
226 浏览

php - PHP相交两个数组并替换一项

我有两个多维数组,我想使用 PHP array_intersect 函数相交,但在为此执行输出之前,它还必须只替换数组的一个元素。

例子:

array_intersect 结果:

预期结果:

这可以使用 array_uintersect 来完成吗?

0 投票
3 回答
642 浏览

php - 比较两个爆炸的 php 数组以查找重叠的问题

我正在比较两个爆炸字符串的结果(查询的结果),但是当我使用 array_intersect 查找数组的重叠时,不幸的是,我只收到了每个数组中首先出现的那些标签的重叠......所以例如,如果两个数组如下所示:

阵列1:

数组2:

Array_Intersect 仅返回tag_a作为匹配项。我预计 array_intersect 的行为会返回 tag_a 和 tab_b。

正如您稍后在我的代码中看到的那样,我使用匹配项(两个数组中都存在的标签)来构建数组contactarray。我可以构建数组,它只是不包含我期望的值(例如:tag_b)。

编辑我已经运行了几个测试打印contactarray并将各种标签字符串应用于这些联系人,并且只有具有tag_a的联系人(在数组中)被返回,即使其他几个联系人有tag_a,虽然它不是第一个数组。想法?

0 投票
3 回答
108 浏览

php - 获取表单的人类可读名称

在过去的 4 个小时里,我一直在研究这个问题,一个又一个问题。现在我终于解决了大部分问题,但我似乎无法解决最后的问题。

问题:我必须向学生发送电子邮件(电子邮件存储在数据库中)。在电子邮件中必须有一个带有列表项的无序列表。那部分是简单的部分(html 电子邮件)。我现在面临的问题是我想获取表单的实际名称,而不是值,因为值只是

价值=“1” 价值=“2”

这不会为学生提供关于表格是什么的太多信息。

这些是我的输入字段:

如果您再次注意到该值只是一个数字,我想实际获取 DESCP 和 DESNAP 表单的名称

这是我尝试过的:

我很困惑从这里去哪里。希望大家理解。

我唯一能想到的就是做一个

前锋

遍历在复选框中选中的所有表单,然后在查询中

select * forms where form_id = (检查了什么表单)

然后

返回

表单的实际名称。

但同样,我不知道这是否是一个适当的解决方案。提前感谢你们提供的任何信息。

编辑 1:

复选框必须是一个数组,以便我可以将学生收到的表格存储在数据库中。看看我的另一个问题。

0 投票
2 回答
1587 浏览

php - PHP递归数组相交键触发字符串值

我目前PHP Catchable fatal error: Argument 2 passed to NUI::recArrInterKey() must be an array, string given在尝试递归地与多维数组(灰/白名单)相交时收到错误消息。

$foo['contact']['im']['provider']由于某种我无法弄清楚的原因,它似乎在该部分绊倒?

这是我正在使用的示例白名单数组 ($array2)

以及方法

可以说这是$array1

我期待这是一个回报

0 投票
4 回答
427 浏览

php - PHP确定多维数组中数组之间的交集

我有一个多维数组,其中包含三个数组和一个 id 数组。这是它的样子:

我想做的是在所有三个上运行一个交集并最终得到一个数组的结果,在这个例子中,将是array(1,2)

我该如何做到这一点?

0 投票
2 回答
110 浏览

php - 比较数组键和创建 MySQL 语句的方法

在我们正在构建的用户系统中,客户能够销售我们提供的多种产品。这些产品的数量不是太多,但我们可能会(并计划经常添加新产品)。当用户登录到他们的管理门户时,他们可以从提供的所有可用产品列表中启用或禁用他们想要销售的产品。

name="products[]"我们使用复选框和复选框数组构建了表单以接受“启用”产品的值。这部分一切正常。当我们试图为输入的数据构建最佳的 INSERT / UPDATE 方法时,这个问题就出现了。如果稍后(由我们)向客户提供新产品并选择启用该产品,则会插入值。只需选中或取消选中相应的产品复选框,就会发生更新,从而启用或禁用该产品。

并且INSERTUPDATE if a product is currently disabled但我无法想出一个数组来比较正确地将产品更新为“禁用”,如果它当前在数据库中设置为启用。

如前所述,这里的 IF 和最终 elseif 工作正常,但中间的英文语句:“如果用户取消选中最初设置为活动的产品,则禁用该特定产品 ID”是不正确的。

任何建议表示赞赏。

更新 1:初步想法

我相信一种可能有效的方法是构建一个包含所有当前产品的新数组,$_SESSION['productsOffered']并找出哪些当前产品(在更新时)当前设置为活动状态。然后我将能够将新数组与$_REQUEST['products']数组进行比较,并确定哪些产品被遗漏(或基本上未选中),然后可以更新适当的产品。

虽然我相信这种方法可能会奏效,但它似乎很草率。更新 2:这也必须在当前的 foreach 请求之外完成,因为很明显,已停用的产品不会存在于请求中。

更新 3

根据要求,数组中的一些示例数据如下(这是非常简单的数据并且接近“真实”):

0 投票
2 回答
1684 浏览

php - PHP array_intersect() till the first match

I have 2 arrays to compare and find if there is at least a single value in common.

This works just fine:

However, the question is performance. It doesn't make sense to continue looping thru the arrays after the first match was found. Is there a native PHP function or a useful snippet to achieve this?

Will a combination of foreach() and in_array() do the trick?

0 投票
2 回答
1658 浏览

php - 通过匹配关联数组中的一个或多个键值对来过滤数组行

认为,

现在我想过滤如下行:

这应该返回$data[2].

将返回$data[1]

这里的 order of元素和keys可能不同。$data$rules

我试过了array_intersect,但这对我不起作用。

0 投票
2 回答
65 浏览

php - 数组列表相交

我有一些数组叫做

$array[1]、$array[2] 等

$array[1] 类似于 array(1,2,3) 而 $array[2] 是某事。像 array(2,3,4) 现在我想要所有数组中的所有数字。

我想用

为了这。

但我可能有 2 个或 3 个或 4 个这个数组。是否可以创建一个类似的字符串

并制作一个

?

0 投票
1 回答
260 浏览

php - 当两个数组都是多维时,检查数组 A 是否包含数组 B 中的所有项

我想检查,如果数组 A 包含数组 B 中的所有项目(可能包含其他项目,但必须包含所有项目),当两个数组都是多维的,即可以包含不同的变量类型。

我见过很多(特别是这个这个这个这个这个这个,还有这个这个这个)。我读过 PHP 文档。我检查的所有内容都因“数组到字符串转换”通知而失败。尤其是文使用array_intersect()or array_diff()

我正在使用严格的错误检查,因此通知实际上可以进一步执行整个脚本并且是我通常不喜欢并且想要避免的东西。在这种情况下可能吗?

我的数组 A 是:

我的数组 B 是:

那么,如果我可以array_intersect在包含不同变量类型的多维数组上使用而不引起注意,我有什么办法吗?