php - 如何将新数组与原始数组匹配
问题描述
这很难解释,但我会尽力而为。
在 html 中,得到一行 ABCD E 项。它们不在数组中。
现在得到了另一个数组,即Num[]={1,2,3,4,5,6,7,8,9}
.
想象一下A=1, B=2, C=3, D=4, E=5, 0=6, 0=7, 0=8, 0=9。
现在,我使用复选框来检查项目 B、C、E 并形成一个数组check[]={B,C,E}
。
问题是:如何知道新数组check[0]=2, check[1]=3, check[2]=5?
对不起,我不能很好地解释,对我来说它很复杂。(没有提供代码,因为它太长了)
解决方案
使用array_intersect()
which 匹配两个数组(第一个数组和一个具有您要查找的值的数组)为您提供一个数组,其中仅包含这些项目和第一个数组中的键。然后,您可以使用array_intersect_key()
which 从第二个数组中提取项目,并使用在第一步中提取的键。
$a1 = ['A', 'B', 'C', 'D', 'E'];
$a2 = [1,2,3,4,5];
$a3 = ['A', 'D'];
$a4 = array_intersect_key($a2, array_intersect($a1, $a3));
print_r($a4);
哪个输出...数组
(
[0] => 1
[3] => 4
)
array_values()
如果您希望键是连续的,您可以使用。
$a4 = array_values(array_intersect_key($a2, array_intersect($a1, $a3)));
推荐阅读
- angular - AAD身份验证后Angular 6重定向到实际组件而不是主页
- cmake - cmake_parse_arguments 存储空字符串
- react-native - 将世博会相机胶卷图像上传到服务器
- javascript - 将数组内的对象值显示为 HTML
- prestashop - Db::getInstance()->insert() 没有显示错误,不起作用
- python - 如何在python中的iterrows中找到列中的平均值
- flutter - 在脚手架主体中显示 TabBar
- javascript - 如何定位 DataTables 导出按钮组?
- java - 无法解析配置“:pushwoosh-react-native-plugin:classpath”的所有工件
- azure - 如何在 SonarQube 中重用项目