PHP文字列の各文字の出現回数を6つの方法で計算

8440 ワード


$str = 'AbCdEfGaBcDeFgH0234;,!-AaBbCcDdEeFfGg';

$str = strtoupper($str);          //        ,           

//    
$res = array();                   //           
$arr = str_split($str);           //          
$res = array_count_values($arr);  //              
var_dump($res);

//    
$res = array();                   //           
$arr = str_split($str);           //          
foreach ($arr as $key => $val) {  //        
    if (!isset($res[$val])) {            //                key   
        $res[$val] = 1;           //         1
    } else {
        $res[$val] += 1;          //            1
    }
}
var_dump($res);

//    
$res = array();                   //           
$arr = str_split($str);           //          
$unique = array_unique($arr);     //       
foreach ($unique as $key => $val) {
    $res[$val] = substr_count($str, $val);  //                
}
var_dump($res);

//     ASCII   
$res = array();                   //           
$arr = str_split($str);           //          
foreach ($arr as $key => $val) {
    $ascii = ord($val);
    if (!isset($res[$ascii])) {
        $res[$ascii] = 1;
    } else {
        $res[$ascii] += 1;
    }
}

foreach ($res as $key => $val) {
    $res[chr($key)] = $val;
    unset($res[$key]);
}

var_dump($res);

/**
 *   PHP                 :
 * $str = 'AaBbCcDdEeFfGg';
 * $str[0]        A   $str[2]        B
 *         ,                    
 */

//    
$res = array();                     //           
$strLen = strlen($str);             //         
for ($i = 0; $i < $strLen; $i++) {  //        
    if (!isset($res[$i])) {                //                key   
        $res[$i] = 1;               //         1
    } else {
        $res[$i] += 1;              //            1
    }
}
var_dump($res);

//    
$res = array();                    //           
$strLen = strlen($str);            //         
for ($i = 0; $i < $strLen; $i++) { // for        
    $ascii = ord($str[$i]);        //        ASCII  
    if (!isset($res[$ascii])) {
        $res[$ascii] = 1;
    } else {
        $res[$ascii] += 1;
    }
}

foreach ($res as $key => $val) {   //      
    $res[chr($key)] = $val;        //   ASCII           
    unset($res[$key]);             //      ASCII    key
}
var_dump($res);