php如何检测数组中是否包含某字符串

发布时间:2022-07-26 17:31:18 作者:iii
来源:亿速云 阅读:1121

PHP如何检测数组中是否包含某字符串

在PHP开发中,数组是一种非常常用的数据结构,用于存储和管理一组数据。在实际开发中,我们经常需要检测一个数组中是否包含某个特定的字符串。本文将详细介绍如何在PHP中检测数组中是否包含某字符串,并提供多种方法和示例代码。

1. 使用in_array()函数

in_array()是PHP中最常用的检测数组中是否包含某个值的方法。它可以用于检测数组中是否包含某个字符串、数字或其他类型的值。

1.1 基本用法

$array = ['apple', 'banana', 'cherry'];
$search = 'banana';

if (in_array($search, $array)) {
    echo "数组中包含 '$search'";
} else {
    echo "数组中不包含 '$search'";
}

1.2 严格模式

in_array()函数的第三个参数是一个布尔值,用于指定是否启用严格模式。在严格模式下,in_array()不仅会比较值,还会比较类型。

$array = ['1', '2', '3'];
$search = 2;

if (in_array($search, $array, true)) {
    echo "数组中包含 '$search'";
} else {
    echo "数组中不包含 '$search'";
}

在上面的例子中,由于启用了严格模式,in_array()会返回false,因为$search的类型是整数,而数组中的值是字符串。

2. 使用array_search()函数

array_search()函数用于在数组中搜索给定的值,并返回对应的键。如果找到了该值,则返回其键;否则返回false

2.1 基本用法

$array = ['apple', 'banana', 'cherry'];
$search = 'banana';

$key = array_search($search, $array);

if ($key !== false) {
    echo "数组中包含 '$search',键为 $key";
} else {
    echo "数组中不包含 '$search'";
}

2.2 严格模式

in_array()类似,array_search()也可以启用严格模式。

$array = ['1', '2', '3'];
$search = 2;

$key = array_search($search, $array, true);

if ($key !== false) {
    echo "数组中包含 '$search',键为 $key";
} else {
    echo "数组中不包含 '$search'";
}

3. 使用array_keys()函数

array_keys()函数返回数组中所有指定值的键。如果数组中包含多个相同的值,array_keys()会返回所有对应的键。

3.1 基本用法

$array = ['apple', 'banana', 'cherry', 'banana'];
$search = 'banana';

$keys = array_keys($array, $search);

if (!empty($keys)) {
    echo "数组中包含 '$search',键为 " . implode(', ', $keys);
} else {
    echo "数组中不包含 '$search'";
}

3.2 严格模式

array_keys()也可以启用严格模式。

$array = ['1', '2', '3', '2'];
$search = 2;

$keys = array_keys($array, $search, true);

if (!empty($keys)) {
    echo "数组中包含 '$search',键为 " . implode(', ', $keys);
} else {
    echo "数组中不包含 '$search'";
}

4. 使用array_filter()函数

array_filter()函数用于过滤数组中的元素。我们可以使用它来检测数组中是否包含某个字符串。

4.1 基本用法

$array = ['apple', 'banana', 'cherry'];
$search = 'banana';

$filtered = array_filter($array, function($item) use ($search) {
    return $item === $search;
});

if (!empty($filtered)) {
    echo "数组中包含 '$search'";
} else {
    echo "数组中不包含 '$search'";
}

4.2 使用strpos()进行模糊匹配

如果我们需要进行模糊匹配(即检测数组中是否包含某个子字符串),可以使用strpos()函数。

$array = ['apple', 'banana', 'cherry'];
$search = 'ana';

$filtered = array_filter($array, function($item) use ($search) {
    return strpos($item, $search) !== false;
});

if (!empty($filtered)) {
    echo "数组中包含 '$search'";
} else {
    echo "数组中不包含 '$search'";
}

5. 使用preg_grep()函数

preg_grep()函数用于通过正则表达式匹配数组中的元素。我们可以使用它来检测数组中是否包含某个字符串。

5.1 基本用法

$array = ['apple', 'banana', 'cherry'];
$search = '/ana/';

$matches = preg_grep($search, $array);

if (!empty($matches)) {
    echo "数组中包含 '$search'";
} else {
    echo "数组中不包含 '$search'";
}

5.2 使用正则表达式进行模糊匹配

preg_grep()函数非常适合用于复杂的字符串匹配需求。

$array = ['apple', 'banana', 'cherry'];
$search = '/^b/'; // 匹配以 'b' 开头的字符串

$matches = preg_grep($search, $array);

if (!empty($matches)) {
    echo "数组中包含 '$search'";
} else {
    echo "数组中不包含 '$search'";
}

6. 使用array_reduce()函数

array_reduce()函数用于将数组中的元素通过回调函数进行累积计算。我们可以使用它来检测数组中是否包含某个字符串。

6.1 基本用法

$array = ['apple', 'banana', 'cherry'];
$search = 'banana';

$contains = array_reduce($array, function($carry, $item) use ($search) {
    return $carry || $item === $search;
}, false);

if ($contains) {
    echo "数组中包含 '$search'";
} else {
    echo "数组中不包含 '$search'";
}

6.2 使用strpos()进行模糊匹配

$array = ['apple', 'banana', 'cherry'];
$search = 'ana';

$contains = array_reduce($array, function($carry, $item) use ($search) {
    return $carry || strpos($item, $search) !== false;
}, false);

if ($contains) {
    echo "数组中包含 '$search'";
} else {
    echo "数组中不包含 '$search'";
}

7. 使用array_walk()函数

array_walk()函数用于对数组中的每个元素应用用户自定义的函数。我们可以使用它来检测数组中是否包含某个字符串。

7.1 基本用法

$array = ['apple', 'banana', 'cherry'];
$search = 'banana';
$contains = false;

array_walk($array, function($item) use ($search, &$contains) {
    if ($item === $search) {
        $contains = true;
    }
});

if ($contains) {
    echo "数组中包含 '$search'";
} else {
    echo "数组中不包含 '$search'";
}

7.2 使用strpos()进行模糊匹配

$array = ['apple', 'banana', 'cherry'];
$search = 'ana';
$contains = false;

array_walk($array, function($item) use ($search, &$contains) {
    if (strpos($item, $search) !== false) {
        $contains = true;
    }
});

if ($contains) {
    echo "数组中包含 '$search'";
} else {
    echo "数组中不包含 '$search'";
}

8. 使用array_map()函数

array_map()函数用于将回调函数应用到数组的每个元素上。我们可以使用它来检测数组中是否包含某个字符串。

8.1 基本用法

$array = ['apple', 'banana', 'cherry'];
$search = 'banana';

$results = array_map(function($item) use ($search) {
    return $item === $search;
}, $array);

if (in_array(true, $results, true)) {
    echo "数组中包含 '$search'";
} else {
    echo "数组中不包含 '$search'";
}

8.2 使用strpos()进行模糊匹配

$array = ['apple', 'banana', 'cherry'];
$search = 'ana';

$results = array_map(function($item) use ($search) {
    return strpos($item, $search) !== false;
}, $array);

if (in_array(true, $results, true)) {
    echo "数组中包含 '$search'";
} else {
    echo "数组中不包含 '$search'";
}

9. 使用array_intersect()函数

array_intersect()函数用于计算数组的交集。我们可以使用它来检测数组中是否包含某个字符串。

9.1 基本用法

$array = ['apple', 'banana', 'cherry'];
$search = ['banana'];

$intersect = array_intersect($array, $search);

if (!empty($intersect)) {
    echo "数组中包含 '$search[0]'";
} else {
    echo "数组中不包含 '$search[0]'";
}

9.2 使用多个搜索值

$array = ['apple', 'banana', 'cherry'];
$search = ['banana', 'cherry'];

$intersect = array_intersect($array, $search);

if (!empty($intersect)) {
    echo "数组中包含 " . implode(', ', $search);
} else {
    echo "数组中不包含 " . implode(', ', $search);
}

10. 使用array_diff()函数

array_diff()函数用于计算数组的差集。我们可以使用它来检测数组中是否包含某个字符串。

10.1 基本用法

$array = ['apple', 'banana', 'cherry'];
$search = ['banana'];

$diff = array_diff($array, $search);

if (count($diff) < count($array)) {
    echo "数组中包含 '$search[0]'";
} else {
    echo "数组中不包含 '$search[0]'";
}

10.2 使用多个搜索值

$array = ['apple', 'banana', 'cherry'];
$search = ['banana', 'cherry'];

$diff = array_diff($array, $search);

if (count($diff) < count($array)) {
    echo "数组中包含 " . implode(', ', $search);
} else {
    echo "数组中不包含 " . implode(', ', $search);
}

11. 使用array_unique()函数

array_unique()函数用于移除数组中的重复值。我们可以使用它来检测数组中是否包含某个字符串。

11.1 基本用法

$array = ['apple', 'banana', 'cherry', 'banana'];
$search = 'banana';

$unique = array_unique($array);

if (in_array($search, $unique)) {
    echo "数组中包含 '$search'";
} else {
    echo "数组中不包含 '$search'";
}

11.2 使用strpos()进行模糊匹配

$array = ['apple', 'banana', 'cherry', 'banana'];
$search = 'ana';

$unique = array_unique($array);

$contains = array_reduce($unique, function($carry, $item) use ($search) {
    return $carry || strpos($item, $search) !== false;
}, false);

if ($contains) {
    echo "数组中包含 '$search'";
} else {
    echo "数组中不包含 '$search'";
}

12. 使用array_column()函数

array_column()函数用于返回数组中指定列的值。我们可以使用它来检测多维数组中是否包含某个字符串。

12.1 基本用法

$array = [
    ['fruit' => 'apple'],
    ['fruit' => 'banana'],
    ['fruit' => 'cherry']
];
$search = 'banana';

$column = array_column($array, 'fruit');

if (in_array($search, $column)) {
    echo "数组中包含 '$search'";
} else {
    echo "数组中不包含 '$search'";
}

12.2 使用strpos()进行模糊匹配

$array = [
    ['fruit' => 'apple'],
    ['fruit' => 'banana'],
    ['fruit' => 'cherry']
];
$search = 'ana';

$column = array_column($array, 'fruit');

$contains = array_reduce($column, function($carry, $item) use ($search) {
    return $carry || strpos($item, $search) !== false;
}, false);

if ($contains) {
    echo "数组中包含 '$search'";
} else {
    echo "数组中不包含 '$search'";
}

13. 使用array_walk_recursive()函数

array_walk_recursive()函数用于对多维数组中的每个元素应用用户自定义的函数。我们可以使用它来检测多维数组中是否包含某个字符串。

13.1 基本用法

$array = [
    ['fruit' => 'apple'],
    ['fruit' => 'banana'],
    ['fruit' => 'cherry']
];
$search = 'banana';
$contains = false;

array_walk_recursive($array, function($item) use ($search, &$contains) {
    if ($item === $search) {
        $contains = true;
    }
});

if ($contains) {
    echo "数组中包含 '$search'";
} else {
    echo "数组中不包含 '$search'";
}

13.2 使用strpos()进行模糊匹配

$array = [
    ['fruit' => 'apple'],
    ['fruit' => 'banana'],
    ['fruit' => 'cherry']
];
$search = 'ana';
$contains = false;

array_walk_recursive($array, function($item) use ($search, &$contains) {
    if (strpos($item, $search) !== false) {
        $contains = true;
    }
});

if ($contains) {
    echo "数组中包含 '$search'";
} else {
    echo "数组中不包含 '$search'";
}

14. 使用array_reduce()函数

array_reduce()函数用于将数组中的元素通过回调函数进行累积计算。我们可以使用它来检测数组中是否包含某个字符串。

14.1 基本用法

$array = ['apple', 'banana', 'cherry'];
$search = 'banana';

$contains = array_reduce($array, function($carry, $item) use ($search) {
    return $carry || $item === $search;
}, false);

if ($contains) {
    echo "数组中包含 '$search'";
} else {
    echo "数组中不包含 '$search'";
}

14.2 使用strpos()进行模糊匹配

$array = ['apple', 'banana', 'cherry'];
$search = 'ana';

$contains = array_reduce($array, function($carry, $item) use ($search) {
    return $carry || strpos($item, $search) !== false;
}, false);

if ($contains) {
    echo "数组中包含 '$search'";
} else {
    echo "数组中不包含 '$search'";
}

15. 使用array_map()函数

array_map()函数用于将回调函数应用到数组的每个元素上。我们可以使用它来检测数组中是否包含某个字符串。

15.1 基本用法

$array = ['apple', 'banana', 'cherry'];
$search = 'banana';

$results = array_map(function($item) use ($search) {
    return $item === $search;
}, $array);

if (in_array(true, $results, true)) {
    echo "数组中包含 '$search'";
} else {
    echo "数组中不包含 '$search'";
}

15.2 使用strpos()进行模糊匹配

$array = ['apple', 'banana', 'cherry'];
$search = 'ana';

$results = array_map(function($item) use ($search) {
    return strpos($item, $search) !== false;
}, $array);

if (in_array(true, $results, true)) {
    echo "数组中包含 '$search'";
} else {
    echo "数组中不包含 '$search'";
}

16. 使用array_intersect()函数

array_intersect()函数用于计算数组的交集。我们可以使用它来检测数组中是否包含某个字符串。

16.1 基本用法

$array = ['apple', 'banana', 'cherry'];
$search = ['banana'];

$intersect = array_intersect($array, $search);

if (!empty($intersect)) {
    echo "数组中包含 '$search[0]'";
} else {
    echo "数组中不包含 '$search[0]'";
}

16.2 使用多个搜索值

$array = ['apple', 'banana', 'cherry'];
$search = ['banana', 'cherry'];

$intersect = array_intersect($array, $search);

if (!empty($intersect)) {
    echo "数组中包含 " . implode(', ', $search);
} else {
    echo "数组中不包含 " . implode(', ', $search);
}

17. 使用array_diff()函数

array_diff()函数用于计算数组的差集。我们可以使用它来检测数组中是否包含某个字符串。

17.1 基本用法

$array = ['apple', 'banana', 'cherry'];
$search = ['banana'];

$diff = array_diff($array, $search);

if (count($diff) < count($array)) {
    echo "数组中包含 '$search[0]'";
} else {
    echo "数组中不包含 '$search[0]'";
}

17.2 使用多个搜索值

”`php \(array = ['apple', 'banana', 'cherry']; \)search = [‘banana’, ‘cherry’];

\(diff = array_diff(\)

推荐阅读:
  1. php检测字符串是否包含字符串的方法有哪些
  2. Python find()如何检测字符串中是否包含某子串

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php

上一篇:php如何求二维数组的长度

下一篇:php如何求数组第一个元素的下标

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》