首页 > 解决方案 > 检查给定值是否存在于另一个数组中?

问题描述

我有一个包含一些值的数组,如下所示:

$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;
}

但这会返回所有记录。

有谁能够帮我。

标签: phparrays

解决方案


遍历您$fields并检查字段名称是否存在于$keys

foreach ($fields as $field) {
    if (in_array($field['name'], $keys)) {
        $finalArr[$field['name']] = $field;
    }
}

推荐阅读