2016-11-28 93 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) 
);