我想从数组中的所有元素中删除一个字母,并使用 PHP 将其替换为字符串


I want to remove a letter from all the elements in an array and replace it with a string using PHP.

$numbers = array("18339993993","18303839303");
foreach($numbers as $number) {
    $number = explode(",", $number);
    for($i = 0; $i <= count($number); $i++) {
        $number = substr($number,1, 10);
        echo $number;
}

请我想删除数组中每个元素中的第一个数字,并将其替换为数组中所有元素的"999"。

I want my output to be like this for each element in the array:
$output[0] = "9998339993993"
$output[1] = "9998303839303"

这应该适合您:

(在这里,我用array_map()遍历数组的每个元素。然后我返回每个元素,开头带有 999 加上偏移量为 1 的原始值,我得到 substr()

<?php
    $numbers = array("18339993993","18303839303");
    $numbers = array_map(function($v){
        return "999" . substr($v, 1);
    }, $numbers);
    print_r($numbers);
?>

输出:

Array ( [0] => 9998339993993 [1] => 9998303839303 )

更接近问题中的代码:

<?php
  $numbers = array("18339993993","18303839303");
  $numbers_after = array();
  foreach ($numbers as $number){
    $number = "999" . substr($number, 1);
    array_push($numbers_after, $number);
  }
  print_r ($numbers_after);
?>

由于没有正则表达式解决方案:

$numbers = preg_replace('/^'d/', '999', $numbers);

就这么简单。