2016-06-20 3 views
0

に変換:ソープ文字列これらの問題に関連してPHPの配列

$result = $soapclient->executeQuery($api_key, $database, $local, $qrf_file, $qif_file, $separator, $output_file, $params); 

私はこれらのような石鹸から答えを持っている:

Machine  |Number |Words  |Something else 
Machine2 |Number2 |Words2  |Something else2 
Machine3 |Number3 |Words3  |Something else3 
私は石鹸の質問があり

Soap answert string - convert into arrray

行は何も区切られていません。 私は石鹸の答えをいくつかのPHP配列に変換する必要があります。私が試した:

$test2 = nl2br($result); 
$test2 = explode("<br>", $test2); 

または

$result = explode("|", $result); 
$result2 = trim($result); 

が、私はこれらのような配列が必要:

Array { 
    Machine1 => Array 
     (
      [mytext] => Number 
      [mytext2] => Words 
      [mytext3] => 'Something else' 
     ) 
    Machine2 => Array 
     (
      [mytext] => Number2 
      [mytext2] => Words2 
      [mytext3] => 'Something else2' 
     ) 
} 

など

してください、ヘルプを。

よろしく

答えて

0

まず、これは関係なく、実際の改行文字が何であるかの私たちの各行に共通結末を与えるよう、私たちはnl2brを実行します。次に、<br />の文字列を配列に分割できます。これにより、各行がそれ自身の要素として配列されます。そこから、各行を通り、分割し、この新しい配列のすべての要素をトリムし、必要な行/書式を「最終的な」配列に追加します。あなたがして試すことができ

$result = nl2br($result); 
$result = explode("<br />", $result); 

$array = array(); 
foreach ($result as $var) { 
    $var = explode("|", $var); 
    $var = array_map("trim", $var); 
    $array[$var[0]] = array("mytext" => $var[1], "mytext2" => $var[2], "mytext3" => $var[3]); 
} 
print_r($array); 
0

次のように自分自身を爆発:

$str = "Machine  |Number |Words  |Something else 
Machine2 |Number2 |Words2  |Something else2 
Machine3 |Number3 |Words3  |Something else3"; 

$first = explode("\n", $str); //First explode using new line 

$finalArr = []; 
foreach ($first as $value) { 
    $machines = explode("|", $value); //Next explode using | operator 
    $machines = array_map('trim', $machines); //Trim the values to remove unwanted spaces 
    $machineTitle = $machines[0]; 
    $finalArr[$machineTitle] = []; 
    unset($machines[0]); //Unset the first index, we no need this anymore (used so that you can make it for any length of strings) 
    foreach ($machines as $key => $value) { 
     $finalArr[$machineTitle]["mytext".(($key-1)?:'')] = $value; ///Just assign things 
    } 
} 

print_r($finalArr); 

結果:

Array 
(
    [Machine] => Array 
     (
      [mytext] => Number 
      [mytext1] => Words 
      [mytext2] => Something else 
     ) 

    [Machine2] => Array 
     (
      [mytext] => Number2 
      [mytext1] => Words2 
      [mytext2] => Something else2 
     ) 

    [Machine3] => Array 
     (
      [mytext] => Number3 
      [mytext1] => Words3 
      [mytext2] => Something else3 
     ) 

) 
関連する問題