如何检查数组的某个部分是否存在于另一个数组中?

发布于 2024-07-30 02:26:08 字数 306 浏览 1 评论 0原文

我有两个关联数组,我想检查

$array1["foo"]["bar"]["baz"] exists in $array2["foo"]["bar"]["baz"]

值是否无关紧要,只是“路径”。 array_ intersect_ assoc 是否能满足我的需要?< br> 如果不是我自己怎么写呢?

I have an two associative arrayes and I want to check if

$array1["foo"]["bar"]["baz"] exists in $array2["foo"]["bar"]["baz"]

The values doesn't matter, just the "path".
Does array_ intersect_ assoc do what I need?
If not how can I write one myself?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

旧瑾黎汐 2024-08-06 02:26:08

尝试这个:

<?php
function array_path_exists(&$array, $path, $separator = '/')
{
    $a =& $array;
    $paths = explode($separator, $path);
    $i = 0;
    foreach ($paths as $p) {
        if (isset($a[$p])) {
            if ($i == count($paths) - 1) {
                return TRUE;
            }
            elseif(is_array($a[$p])) {
                $a =& $a[$p];
            }
            else {
                return FALSE;
            }
        }
        else {
            return FALSE;
        }
        $i++;
    }
}

// Test
$test = array(
    'foo' => array(
        'bar' => array(
            'baz' => 1
            )
        ),
    'bar' => 1
    );

echo array_path_exists($test, 'foo/bar/baz');

?>

Try this:

<?php
function array_path_exists(&$array, $path, $separator = '/')
{
    $a =& $array;
    $paths = explode($separator, $path);
    $i = 0;
    foreach ($paths as $p) {
        if (isset($a[$p])) {
            if ($i == count($paths) - 1) {
                return TRUE;
            }
            elseif(is_array($a[$p])) {
                $a =& $a[$p];
            }
            else {
                return FALSE;
            }
        }
        else {
            return FALSE;
        }
        $i++;
    }
}

// Test
$test = array(
    'foo' => array(
        'bar' => array(
            'baz' => 1
            )
        ),
    'bar' => 1
    );

echo array_path_exists($test, 'foo/bar/baz');

?>
∞梦里开花 2024-08-06 02:26:08

如果您只需要检查键是否存在,可以使用简单的 if 语句。

<?php
if (isset($array1["foo"]["bar"]["baz"]) && isset($array2["foo"]["bar"]["baz"]

)){
//存在
}

If you only need to check if the keys exist you could use a simple if statement.

<?php
if (isset($array1["foo"]["bar"]["baz"]) && isset($array2["foo"]["bar"]["baz"]

)) {
//exists
}

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文