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