
在PHP开发中,我们经常会遇到需要根据特定条件对数组中的元素进行分类和重新分配的情况。例如,给定两个字符串数组,我们希望将所有包含特定字符的字符串归集到一个数组,而将不包含该字符的字符串归集到另一个数组。
假设我们有以下两个初始数组:
$tab1 = ["echelle", "trio", "pamplemousse", "legumes"]; $tab2 = ["lama", "geranium", "pendule", "elephant"];
我们的目标是:
直接在原始数组之间进行元素交换或删除操作可能会导致复杂的逻辑和潜在的索引问题。一个更简洁、高效的方法是:首先将所有需要处理的元素合并到一个临时数组中,然后遍历这个临时数组,根据条件将元素分配到新的目标数组中。
立即学习“PHP免费学习笔记(深入)”;
<?php
// 原始数组
$tab1 = ["echelle", "trio", "pamplemousse", "legumes"];
$tab2 = ["lama", "geranium", "pendule", "elephant"];
echo "--- 原始数组 ---" . PHP_EOL;
echo "tab1: "; print_r($tab1);
echo "tab2: "; print_r($tab2);
// 1. 合并两个数组,形成一个包含所有待处理单词的集合
$allWords = array_merge($tab1, $tab2);
// 2. 初始化新的目标数组,用于存储分类后的结果
$newTab1 = []; // 存放包含 'u' 的单词
$newTab2 = []; // 存放不包含 'u' 的单词
// 3. 遍历合并后的数组,根据条件进行分类
foreach ($allWords as $word) {
// 使用 strpos() 函数检查字符串中是否包含字母 'u'
// strpos() 返回字符首次出现的位置(0或正整数),如果未找到则返回 FALSE
if (strpos($word, 'u') !== FALSE) {
// 如果包含 'u',则添加到 newTab1
$newTab1[] = $word;
} else {
// 如果不包含 'u',则添加到 newTab2
$newTab2[] = $word;
}
}
echo PHP_EOL . "--- 分类后的数组 ---" . PHP_EOL;
echo "包含 'u' 的单词 (newTab1): ";
print_r($newTab1);
echo "不包含 'u' 的单词 (newTab2): ";
print_r($newTab2);
?>执行上述PHP代码,将得到以下输出:
--- 原始数组 ---
tab1: Array
(
[0] => echelle
[1] => trio
[2] => pamplemousse
[3] => legumes
)
tab2: Array
(
[0] => lama
[1] => geranium
[2] => pendule
[3] => elephant
)
--- 分类后的数组 ---
包含 'u' 的单词 (newTab1): Array
(
[0] => pamplemousse
[1] => legumes
[2] => geranium
[3] => pendule
)
不包含 'u' 的单词 (newTab2): Array
(
[0] => echelle
[1] => trio
[2] => lama
[3] => elephant
)通过这种结构化的方法,我们可以清晰、高效地解决PHP中基于特定条件对数组元素进行分类和重组的问题。
以上就是PHP数组元素高效分类与重组:基于特定字符的字符串筛选的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号