Php 如果长度为奇数,如何在字符串数组元素的中间字符中打印*

Php 如果长度为奇数,如何在字符串数组元素的中间字符中打印*,php,arrays,Php,Arrays,我想在数组奇数元素的中间元素中打印*。这是我没有得到的代码,我在内环上写的条件是什么?如果字符长度为7,那么如何在4个数字字符上打印* $strings = array("abcdef","abcde","qwert","abcdef","bat"); for ($i=0; $i <count($strings) ; $i++) { $len = strlen($strings[$i]); if($len % 2 == 0) { echo "Chacater's ar

我想在数组奇数元素的中间元素中打印*。这是我没有得到的代码,我在内环上写的条件是什么?如果字符长度为7,那么如何在4个数字字符上打印*

 $strings = array("abcdef","abcde","qwert","abcdef","bat");

 for ($i=0; $i <count($strings) ; $i++) { 

 $len = strlen($strings[$i]);

 if($len % 2 == 0)
  {
 echo "Chacater's are even<br>";
  }
else{

 $string = $strings[$i];

 for($j=0; $j<1; $j++)
 {
    $string[$j] = "*";
  }
echo $string."<br>";
  }

  }
$strings=数组(“abcdef”、“abcde”、“qwert”、“abcdef”、“bat”);

对于($i=0;$i),您希望这样做吗

 <?php 
  $strings = array("abcdef","abcde","qwert","abcdef");
  foreach($strings as $key=> $value){
     $strlen = strlen($value);
     if($strlen%2 == 0){
       echo "\n".$value." :even length";
     }else {
       if($strlen > 1){
         $value[intVal($strlen/2)]="*";
       }
       echo "\n".$value." :odd length";
     }
  }
 ?>

演示:


根据我的理解,您需要将数组中奇数长度元素的中间字符替换为“*”。此代码将为您提供所需的结果

$strings = array("abcdef","abcde","qwert","abcdef");
    $count = count($strings);

    for ($i=0; $i<$count; $i++) { 
        $len = strlen($strings[$i]);
        if($len % 2 == 0){
            echo "Chacater's are even \n";
        }else{
            $string = $strings[$i];
            // find the center index
            $center = floor($len/2);
            // replace the center char with *
            $string = substr_replace($string, '*', $center,1);
            echo $string."\n";
        }
      }

你能举例说明预期的输出是什么吗?你的问题不够清楚。你想打印*到哪里?你是指数组的长度?还是指数组中的数组元素?如果字符串元素长度是奇数,那么*打印在奇数字符串的中间字符上。我不知道如何解决它的逻辑。
Chacater's are even 
ab*de
qw*rt
Chacater's are even