2017-03-08 57 views
1

我試圖將我的配置內容轉換爲數組。將break行轉換爲數組

這是我的配置內容:

echo Executing Server Config... 
lanmode 0 
rcon_password dadasdasdsad 
maxplayers 10 
port 11494 
hostname SA-MP 0.3 Server 
gamemode0 grandlarc 1 
filterscripts base gl_actions gl_property gl_realtime 
announce 0 
query 1 
weburl www.sa-mp.com 
maxnpc 0 
onfoot_rate 40 
incar_rate 40 
weapon_rate 40 
stream_distance 300.0 
stream_rate 1000 

我想這個轉換爲數組是這樣的:

$array['lanmode'] // value is 0 
$array['rcon_password'] // value is dadasdasdsad 
... 

所以我怎麼能做到這一點,感謝大家和我的英語很抱歉。

回答

1

一種方法是使用explode()兩次:一次獲取每一行,然後一次獲取每個元素。

$config = array(); 
foreach (explode("\n", $configstring) as $v) { 
    $exp = explode(" ", $v); 
    $config[$exp[0]] = $exp[1]; 
} 

其中$configstring是您的配置,如上所示(沒有第一行)。如果你想擺脫第一線的,就像你有 「執行服務器配置...」 頂部

Array 
(
    [lanmode] => 0 
    [rcon_password] => dadasdasdsad 
    [maxplayers] => 10 
    [port] => 11494 
    [hostname] => SA-MP 
    [gamemode0] => grandlarc 
    [filterscripts] => base 
    [announce] => 0 
    [query] => 1 
    [weburl] => www.sa-mp.com 
    [maxnpc] => 0 
    [onfoot_rate] => 40 
    [incar_rate] => 40 
    [weapon_rate] => 40 
    [stream_distance] => 300.0 
    [stream_rate] => 1000 
) 

Live demo


輸出的

$config ,你可以在unset()爆炸後的第一塊陣列,像這樣

$config = array(); 
$exploded = explode("\n", $configstring); 
unset($exploded[0]); 
foreach ($exploded as $v) { 
    $exp = explode(" ", $v); 
    $config[$exp[0]] = $exp[1]; 
} 

Live demo with removal of first line


+0

感謝你這麼多! –