php - 检查给定值是否存在于另一个数组中?
问题描述
我有一个包含一些值的数组,如下所示:
$array1 = [
0 => "year",
1 => "month"
];
我对该数组进行循环并检查其值是否存在于以下数组中。
array:3 [
0 => array:3 [
"name" => "year"
"mandatory" => true
"type" => "integer"
]
1 => array:3 [
"name" => "month"
"mandatory" => true
"type" => "integer"
]
2 => array:3 [
"name" => "id"
"mandatory" => false
"type" => "integer"
]
]
如果存在,那么我必须返回类似这样的数组
array[
"year" => [
"mandatory" => true
"type" => "integer"
],
"month" => [
"mandatory" => true
"type" => "integer"
],
]
这是到目前为止我尝试过的代码。
$keys = array_keys($params);
$fields = $config["fields"];
$finalArr = array();
foreach($keys as $key) {
if(in_array($key, array_column($fields, "name"))) {
$finalArr[$key] = array();
}
$finalArr[$key][] = $fields;
}
但这会返回所有记录。
有谁能够帮我。
解决方案
遍历您$fields
并检查字段名称是否存在于$keys
:
foreach ($fields as $field) {
if (in_array($field['name'], $keys)) {
$finalArr[$field['name']] = $field;
}
}
推荐阅读
- php - 如何将更多点击信息发送到 CodeIgniter 中的添加到购物车?
- ios - 在 RxSwift 中测试 BehaviorSubject/Relay
- reactjs - 无法读取未定义的属性“提交”-React
- bootstrap-4 - 带卡片 h-100 的引导程序布局
- angular - window.print() 后页面自动重新加载到主页
- node.js - 使用knex js执行程序时出错
- java - 参数化 selenium junit 中的变量以加载测试要在 jmeter 上运行的网站
- ruby-on-rails - 是否可以自定义像 has_role 这样的 rolify 方法?, add_role 等
- android - 无法在 Android Studio 中导入项目
- node.js - 在猫鼬中复制数组中的对象