如何检查是否存在多个数组键

新手上路,请多包涵

我有各种各样的数组,它们要么包含

story & message

要不就

story

我将如何检查数组是否同时包含故事和消息? array_key_exists() 仅在数组中查找该单个键。

有没有办法做到这一点?

原文由 Ryan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 487
2 个回答

如果您只有 2 个要检查的键(如在原始问题中),只需调用 array_key_exists() 两次来检查键是否存在可能很容易。

 if (array_key_exists("story", $arr) && array_key_exists("message", $arr)) {
    // Both keys exist.
}

然而,这显然不能很好地扩展到许多键。在这种情况下,自定义函数会有所帮助。

 function array_keys_exists(array $keys, array $arr) {
   return !array_diff_key(array_flip($keys), $arr);
}

原文由 alex 发布,翻译遵循 CC BY-SA 3.0 许可协议

    $colsRequired   = ["apple", "orange", "banana", "grapes"];
    $data           = ["apple"=>"some text", "orange"=>"some text"];
    $presentInBoth  = array_intersect($colsRequired,array_keys($data));

    if( count($presentInBoth) != count($colsRequired))
        echo "Missing keys  :" . join(",",array_diff($colsRequired,$presentInBoth));
    else
        echo "All Required cols are present";

原文由 Ravi Shankar S K 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题