2017-11-19 17 views
1

私はつまり、私はインクルードは、私は、この出力ギリシャ文字間違ったエンコーディング

Κ Η 
Α Ρ 
Λ Θ 
Ω Ε 
Σ Σ 

が、私はこのコードを使用する2つの単語であること、他のケースでは上下それぞれの文字を表示したい、ギリシャ語のフレーズを表示したいです: - マルチバイト

?? 
?? 
?? 
?? 
?? 
+0

はこれを交換してください。しかし、ギリシャ文字を設定すると、出力は疑問符です – teo

答えて

1

ギリシャ文字:

<?php 
$str = "HELLO HOW YA DOING WORLD?"; 

$strWords   = explode(' ', $str); 
$strLettersRowsArr = array_map('str_split', $strWords); 

$maxRows = 0; 
foreach ($strLettersRowsArr as $lettersArr) { 
    if (count($lettersArr) > $maxRows) { 
     $maxRows = count($lettersArr); 
    } 
} 

foreach ($strLettersRowsArr as $key => &$lettersArr) { 
    while (count($lettersArr) < $maxRows) { 
     $lettersArr[] = ' '; 
    } 
} 
unset($lettersArr); 

$strLettersColumnsArr = []; 
for ($row = 0; $row < $maxRows; $row++) { 
    $strLettersColumnsArr[] = array_column($strLettersRowsArr, $row); 
} 

// Print out letter columns. 
foreach ($strLettersColumnsArr as $lettersColumnArr) { 
    foreach ($lettersColumnArr as $letter) { 
     echo "$letter "; 
    } 
    echo "\n"; 
} 
?> 

は、しかし、私はこの出力を取得します。これが問題の原因です。

あなたはそれを解決することができますによって

$strLettersRowsArr = array_map('str_split', $strWords);

ラテン文字の作品で

$strLettersRowsArr = array_map(function($word) { return preg_split('##u', $word, -1, PREG_SPLIT_NO_EMPTY); }, $strWords);

+0

それは動作します!それは動作します!ありがとうIvan。あなたは最高です!!! – teo

+0

@teoもしあなたの問題を解決すれば、答えは "受け入れられる"とマークできます – Ivan

+0

残念ながら、それはphp 5.5で動作します。 php 5.2では動作しないので、array_column関数を認識しません。 – teo

関連する問題