PHP - 将变量前缀放入数组
问题描述:
有没有将变量放入数组的方法?我不太清楚如何解释它。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'
);
数组有没有什么办法,我可以做到这一点? 在此先感谢
答
您可以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;
}
答
如果所有的游戏变量要以“RL_PlayerScore_”,你可以使用类似的东西:
$vars = [];
foreach($GLOBALS as $var => $value) {
if(strpos($var, 'RL_PlayerScore_') === 0) {
$vars[$var] = $value;
}
}
$vars
将所有变量来填补。
查看@Dagon的评论。
+0
我可以对此有评论吗? downvote? – Max
答
包含文件的范围,然后得到定义的变量数组,不包括你不需要的全局变量。
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)
);
您可以使用'$ GLOBALS',它将当前脚本变量存储在数组中,但这不是一个好主意。你确定你不能将变量导出为其他格式(如CSV或其他格式) – Max
http://php.net/manual/en/function.extract.php 2016-11-28 21:44:17