首页 > 解决方案 > 我有这样的代码如何编码这样的打印?

问题描述

输入名称:DEVO AVIDIANTO PRATAMA 输出:DAP 如果输入三个字,出现DAP

输入名称:AULIA ABRAR 输出:AAB 如果输入两个字,出现AAB

输入名称:AULIA 输出:AUL 如果输入一个单词,出现AUL

<?php
$nama = $_POST['nama'];
$arr = explode(" ", $nama);
//var_dump($arr);die;
$jum_kata = count($arr);
//echo $jum_kata;die;
$singkatan = "";
if($jum_kata  == 1){
  //print_r($arr);
  foreach($arr as $kata)
  {
  echo substr($kata, 0,3);
  }
}else if($jum_kata == 2) {
  foreach ($arr as $kata) {
    echo  substr($kata,0,2);
  }
}else {

  foreach ($arr as $kata) {
    echo  substr($kata,0,1);
  }

}

?>

如何更正此代码:

else if($jum_kata == 2) {
  foreach ($arr as $kata) {
    echo  substr($kata,0,2);
  }

打印 AAB?

标签: php

解决方案


作为另一种方法的变体。将每个下一个字符串放在前一个字符串上,并移动一步。然后切片结果字符串的开头

function initials($str, $length=3) {
  $string = '';
  foreach(explode(' ', $str) as $k=>$v) {
    $string = substr($string, 0, $k) . $v;
  }  
  return substr($string, 0, $length);
}

echo initials('DEVO AVIDIANTO PRATAMA'). "\n"; // DAP
echo initials('AULIA ABRAR'). "\n";            // AAB
echo initials('AULIA'). "\n";                  // AUL

演示


推荐阅读