2017-06-28 27 views
0

PHPの文字列の分割操作

はそれがあることをその文字列の結果を変換する何らかの方法で可能です:

First name: Marko Petronijevic 
Address: asdas, Beograd, 12321 
Phone: 1232321 

私は機能を爆発してみました、それはokです:

array(7) { 
     [0]=> string(5) "Marko" 
     [1]=> string(26) "Petronijevic asdas" 
     [2]=> string(5) "22" 
     [3]=> string(18) "/> Beograd," 
     [4]=> string(0) "" 
     [5]=> string(16) "12321 T:" 
     [6]=> string(11) "1232321 " 
     } 

しかし、私が直面していますこの問題は、私ということです名前がmiddlenameを持つかどうか分からないので、この配列形式ではうまく動作しません。

これを100%正確に分割する方法を知っている方は、教えてください。

+0

ミドルネームが含まれている場合、文字列はどのように見えますか? –

+0

私はあなたにこの読書を勧めます:http://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/、100%時間働く実際の任意のルールはありません。 2つの入力を入力する必要があります。入力を制御できない場合は、解決するのが難しい – Kaddath

+0

結果が次のようになります。名:Marko Midlename Petronijevic アドレス:asdas、Beograd 、12321 電話番号:1232321 – Milo

答えて

0

あなたの文字列を分割することができ、およびセットアップこのような小さなライン構成で、あなたの文字列を分割することができます。

$string = "Marko Petronijevic 
asdas 
Beograd, 12321 
T: 1232321"; 

$lines = [ 
0 => 'Name', 
1 => 'Address', 
2 => 'Place', 
3 => 'Tel' 
]; 

$array = explode("\n", $string); 

if (count($lines) == count($array)) { 
    $res = array_combine($lines, $array); 
    print_r($res); 
} 

結果: アレイ([名前] =>マルコPetronijevic [住所] => asdas [プレース] =>ベオグラード、12321 [電話] => T:1232321)

-1

あなたはすべての新しいライン

$your_array = explode("\n", $your_string); 
0
<?php 

$str = "Marko Petronijevic asdas Beograd, 12321 T: 1232321 "; // Your String 

$divstr = explode(" ", $str); 

echo 'First Name :'. $divstr[0]; // Marko 
echo '<br>'; 
echo 'Middle Name :'.$divstr[1]; // Petronijevic 
echo '<br>'; 
echo 'Address :'.$divstr[2] . $divstr[3] . $divstr[4]; //asdas /Beograd, // 12321 
echo '<br>'; 
echo 'Phone :'.$divstr[6]; // T:1232321 


?> 

出力:

First Name :Marko 
Middle Name :Petronijevic 
Address :asdasBeograd,12321 
Phone :1232321 

ワーキングデモ:https://eval.in/823533