php替换两个数组中不匹配的内容

发布于 2024-12-07 18:58:48 字数 573 浏览 0 评论 0原文

如何替换一个数组中未在另一个数组中定义的所有不匹配项,我已经开始工作,但它并不完全正确。正如我将向您展示的那样。

结果是,但是错误的。

- - £ 8 - - - - - - - -

所需的结果应该是

 £ 8 - - 

我的代码是这样的

$vals_to_keep = array(8, 'y', '£');

$replace_if_not_found = array('£', 8, '#', 't'); // replace if not in above array

$result = '';

foreach ($replace_if_not_found as $d) {
 foreach ($vals_to_keep as $ok) {
    if(strcmp($d, $ok) == 0){
    $result .= $d . " ";
    }else 
    $result .= str_replace($d, $ok ,'-') . " ";
    }
}
echo $result;

How do you replace all non matches from one array that are not defined within the other array, i have kind of got working but its not exactly right. as i will show you.

the result is, but wrong.

- - £ 8 - - - - - - - -

The required result should be

 £ 8 - - 

this is how my code is

$vals_to_keep = array(8, 'y', '£');

$replace_if_not_found = array('£', 8, '#', 't'); // replace if not in above array

$result = '';

foreach ($replace_if_not_found as $d) {
 foreach ($vals_to_keep as $ok) {
    if(strcmp($d, $ok) == 0){
    $result .= $d . " ";
    }else 
    $result .= str_replace($d, $ok ,'-') . " ";
    }
}
echo $result;

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

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

发布评论

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

评论(2

緦唸λ蓇 2024-12-14 18:58:49

使用 in_array http://php.net/manual/en/function.in-array .php

foreach ($replace_if_not_found as $d) {
if (in_array($d, $vals_to_keep)) 
    $result .= $d . " ";
else 
    $result .= str_replace($d, $ok ,'-') . " ";
}

use in_array http://php.net/manual/en/function.in-array.php

foreach ($replace_if_not_found as $d) {
if (in_array($d, $vals_to_keep)) 
    $result .= $d . " ";
else 
    $result .= str_replace($d, $ok ,'-') . " ";
}
星星的轨迹 2024-12-14 18:58:49

您可以循环遍历 $replace_if_not_found 中的所有项目,根据需要将其替换为 - 或不替换。

在 PHP 5.3 或更高版本中使用闭包

$result = array_map(function($item) use ($vals_to_keep) {
    return in_array($item, $vals_to_keep, TRUE) ? $item : '-';
}, $replace_if_not_found);
echo implode(' ', $result);

使用 foreach 循环

$result = array();
foreach ($replace_if_not_found as $item) {
    if (in_array($item, $vals_to_keep, TRUE)) {
        $result[] = $item;
    } else {
        $result[] = '-';
    }
}
echo implode(' ', $result;

You could loop over all of the items in $replace_if_not_found replacing them with -, or not, as appropriate.

Using closure in PHP 5.3 or above

$result = array_map(function($item) use ($vals_to_keep) {
    return in_array($item, $vals_to_keep, TRUE) ? $item : '-';
}, $replace_if_not_found);
echo implode(' ', $result);

Using a foreach loop

$result = array();
foreach ($replace_if_not_found as $item) {
    if (in_array($item, $vals_to_keep, TRUE)) {
        $result[] = $item;
    } else {
        $result[] = '-';
    }
}
echo implode(' ', $result;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文