2016-11-28 107 views
0

有沒有將變量放入數組的方法?我不太清楚如何解釋它。PHP - 將變量前綴放入數組

我正在開發一個與遊戲服務器一起工作的網站。 遊戲出口包含變量,如文件:

$RL_PlayerScore_CurrentTrail_14911 = "lasergold"; 
$RL_PlayerScore_HasTrail_14911_LaserGold = 1; 
$RL_PlayerScore_Money_14911 = 2148; 

我想將這些轉換爲像

$data = array(
'CurrentTrail_14911' => 'lasergold' 
'HasTrail_14911_LaserGold' => '1' 
'Money_14911' => '2184' 
); 

數組有沒有什麼辦法,我可以做到這一點? 在此先感謝

+0

您可以使用'$ GLOBALS',它將當前腳本變量存儲在數組中,但這不是一個好主意。你確定你不能將變量導出爲其他格式(如CSV或其他格式) – Max

+2

http://php.net/manual/en/function.extract.php <<是否正是你想要的 – 2016-11-28 21:44:17

回答

0

您可以return an array with all your declared variables,並通過它們循環切斷所需的一段文字。你可以這樣做:

<?php 
//echo your generated file here; 
$generatedVars = get_defined_vars(); 
$convertedArray = array(); 
foreach($generatedVars as $key=>$var) 
{ 
    $key = str_replace("RL_PlayerScore_","",$key); 
    $convertedArray[$key] = $var; 
} 
-1

如果所有的遊戲變量要以「RL_PlayerScore_」,你可以使用類似的東西:

$vars = []; 

foreach($GLOBALS as $var => $value) { 
    if(strpos($var, 'RL_PlayerScore_') === 0) { 
     $vars[$var] = $value; 
    } 
} 

$vars將所有變量來填補。

查看@Dagon的評論。

+0

我可以對此有評論嗎? downvote? – Max

1

包含文件的範圍,然後得到定義的變量數組,不包括你不需要的全局變量。

include('name-of-your-file.php'); 

$data = get_defined_vars(); 
$data = array_diff_key($data, array(
    'GLOBALS' => 1, 
    '_FILES' => 1, 
    '_COOKIE' => 1, 
    '_POST' => 1, 
    '_GET' => 1, 
    '_SERVER' => 1, 
    '_ENV' => 1, 
    'ignore' => 1) 
);