Mar*_*cos 5 php arrays duplicate-removal
我有PHP数组,我有从这个数组中删除一些元素的问题.它看起来像这样:
Array
(
[0] => 2x 633130A
[1] => 2x 525130B
[2] => 2x 591130B
[3] => 2x 963130B
[4] => 2x 813130B (20mm)
[5] => 2x 813130B
[6] => 2x 313130B (12mm)
[7] => 2x 313130B
[8] => 4x 413130B
[9] => 2x 633130B
[12] => 2x 381130A (23mm)
[13] => 2x 381130A
)
Run Code Online (Sandbox Code Playgroud)
现在我想删除没有mm参数的重复元素,如下所示:
FROM =====> TO
Array Array
( (
[0] => 2x 633130A [0] => 2x 633130A
[1] => 2x 525130B [1] => 2x 525130B
[2] => 2x 591130B [2] => 2x 591130B
[3] => 2x 963130B [3] => 2x 963130B
[4] => 2x 813130B (20mm) [4] => 2x 813130B (20mm)
[5] => 2x 813130B <= REMOVE [5] => 2x 313130B (12mm)
[6] => 2x 313130B (12mm) [6] => 4x 413130B
[7] => 2x 313130B <= REMOVE [7] => 2x 633130B
[8] => 4x 413130B [8] => 2x 381130A (23mm)
[9] => 2x 633130B )
[12] => 2x 381130A (23mm)
[13] => 2x 381130A <= REMOVE
)
Run Code Online (Sandbox Code Playgroud)
我试过array_unique在这种情况下不起作用,因为元素不完全相同.任何人都可以帮我如何删除那些重复的元素?
在这种情况下,这将满足您的需要:
foreach ($array as $value)
{
if (FALSE !== strpos($value, '('))
{
$string = trim(strtok($value, '('));
while (FALSE !== $key = array_search($string, $array))
{
unset($array[$key]);
}
}
}
Run Code Online (Sandbox Code Playgroud)
它将迭代数组,查找(字符串中包含 a 的所有元素,查找字符串与 the 匹配的任何元素((修剪掉多余的空格),然后如果找到则将其删除。