【问题标题】:foreach two arrays with str_replace使用 str_replace foreach 两个数组
【发布时间】:2012-11-12 00:22:18
【问题描述】:

假设我有两个从 pre_gmatch 得到的数组:

preg_match_all('#<div class="cloud_flow_big">(.*?)</div>#is', $mystring, $names, PREG_SET_ORDER);
preg_match_all('#<div class="bgframe(.*?)</div></div>#is', $mystring, $numbers, PREG_SET_ORDER);

获取的数组中的项目计数始终相同。所以这里是了解发生了什么的代码,并且在第一个数组的所有项目中都有一个重复的单词(在这种情况下,这个单词是 number):

foreach ($names as $key => $name) {
    $i++;
$nameclean = str_replace ("number", $numbers[$key], $names[$key]);
echo $nameclean;
}

那么如何 foreach 第一个数组,但结果是用数组 2 中的所需项替换第一个数组中的所需单词。示例:数组 $names 中第一项中的单词 number 应替换为数组 $numbers 中的第一项(First

【问题讨论】:

  • 我已经编辑了代码以更好地描述问题

标签: php arrays foreach str-replace


【解决方案1】:

你很亲密,我在这里为你修好了:

<?PHP

$names = array('John is number', 'Tom is number', 'Ben is number', 'Tony is number', 'Peter is number');
$numbers = array('First', 'Second', 'Third', 'Fourth', 'Fifth');

foreach ($names as $key => $name) {
    $nameclean = str_replace ("number", $numbers[$key], $names[$key]);
    echo $nameclean . "<br />";

}

?>

您的错误出现在 str_replace() 中。您正在数组 $name[$key] 中进行替换,这只是名称本身。您想从 $names[$key] 数组值进行替换。

【讨论】:

    【解决方案2】:

    主题(str_replace 的第三个参数)必须是 $names[$key]$name

    【讨论】:

      【解决方案3】:

      这样的?

          foreach ($names as $key => &$item) {
              $item = str_replace ("number", $numbers[$key], $item);
          }
      

      【讨论】:

        猜你喜欢
        • 2018-05-15
        • 2015-04-04
        • 1970-01-01
        • 2023-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-11
        • 1970-01-01
        相关资源
        最近更新 更多