gpt4 book ai didi

php - 从数组中删除 PHP

转载 作者:行者123 更新时间:2023-12-03 02:52:03 28 4
gpt4 key购买 nike

我经常对数据使用 preg_match_all($pattern, $string, $matches) ,基本上,我总是需要从数组中删除 £0.00 或 $0.00 或 €0.00(如果它在)那里。

我永远不知道它在数组中的位置(如果有的话)。

我尝试过 unset($matches['£0.00'])unset($matches[0]['£0.00']) 但没有'工作吧

此外,是否可以在不使用实际货币符号或者正则表达式的情况下完成 \p{Sc}

所以,总结一下,我有一个带有货币符号的数字数组,需要删除任何零条目。

示例数组:

Array ( [0] => Array ( [0] => £18.99 [1] => £0.00 [2] => £0.00 [3] => £0.00 ) ) 

这可能吗?

最佳答案

preg_match()preg_match_all() 的用法有时可能很奇怪

$matches 将是模式匹配的数组 - 在这种情况下,如果您

preg_match("/\p{Sc}0\.00/","£0.00",$matches);
//$matches[0] => £0.00

或者如果您在模式中添加括号(),您可以提取一部分

preg_match("/\p{Sc}(0\.00)/","£0.00",$matches);
//$matches[0] => £0.00
//$matches[1] => 0.00

所以要解决这个问题试试这个

foreach($sample_array as $key => $value)
{
if(preg_match("/(\$|\p{Sc})0\.00/",$value))
{
unset($sample_array[$key]);
}
}

注意表示 $£ 的管道 | - 如果您为欧元符号添加另一个管道,它也会捕获该符号 -另请注意,我们正在 unset()-原始数组中的键,而不是 unset()-ing $matches 数组

关于php - 从数组中删除 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13448484/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com