【问题标题】:how to replace all occurrences of the same values in an array如何替换数组中所有出现的相同值
【发布时间】:2022-12-13 18:59:05
【问题描述】:

您好我是 php 的新手,我只是想知道如何遍历数组

  $array = ["7","8","8","18","19","20","21","22","8"];

并将所有值“8”替换为“1”

我试过了

function firstFileInList($array) {
  foreach($array as $k => $v)
    if(strpos($v, "8") !== false){
      return $k;}


}

$testarray[firstFileInList($testarray)] =1;

但它只做第一个实例

【问题讨论】:

  • “但它只做第一个实例”- 当然,因为你只是在做那里有数组元素修改。你将不得不写一些东西循环, 直到数组中不再有 8。
  • 提示:如果您在循环中return,那么循环将无法继续执行超过您从函数返回的点。
  • 什么是预期的输出?
  • 抱歉,在处理代码时犯了一个错误

标签: php arrays


【解决方案1】:

一个简单的 foreach 循环将执行此操作并处理所有条目。请注意,使用 & 引用运算符 &$v 将允许您修改实际数组的内容,而不是 foreach 通常生成的数组副本。

$array = ["7","8","8","18","19","20","21","22","8"];

foreach($array as $k => &$v) {
    if($v == '8'){
        $v = '1';
    }
}
unset($v); // stop modifying the array
print_r($array);

结果

Array
(
    [0] => 7
    [1] => 1
    [2] => 1
    [3] => 18
    [4] => 19
    [5] => 20
    [6] => 21
    [7] => 22
    [8] => 1
)

【讨论】:

    【解决方案2】:

    下面是一个示例,说明如何遍历数组并将所有出现的值“8”替换为值“1”:

    // Define the array
    $array = ["7","8","8","18","19","20","21","22","8"];
    
    // Iterate through the array and replace all occurrences of the value "8" with the value "1"
    foreach ($array as $k => $v) {
      if ($v == "8") {
        $array[$k] = "1";
      }
    }
    
    // Print the modified array
    print_r($array);
    

    此代码的输出将是:

    Array
    (
        [0] => 7
        [1] => 1
        [2] => 1
        [3] => 18
        [4] => 19
        [5] => 20
        [6] => 21
        [7] => 22
        [8] => 1
    )
    

    【讨论】:

      猜你喜欢
      • 2021-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-20
      • 2013-04-15
      • 2012-01-07
      相关资源
      最近更新 更多