注意:这是在PHP中处理变量范围的参考问题.请关闭符合此模式的许多问题中的任何一个.
什么是PHP中的"变量范围"?一个.php文件中的变量是否可以在另一个中访问?为什么我有时会得到"未定义的变量"错误?
说我有一个数组,如:
$arr[] = array("id" => 11, "name" => "First");
$arr[] = array("id" => 52, "name" => "Second");
$arr[] = array("id" => 6, "name" => "Third");
$arr[] = array("id" => 43, "name" => "Fourth");
Run Code Online (Sandbox Code Playgroud)
我想得到一个ID对应的名字,以便我可以这样做:
$name = findNameFromID(43);
Run Code Online (Sandbox Code Playgroud)
并获得,例如,"第四".
我想使用,array_filter但我有点卡在如何正确传递变量.我所看到的问题,比如这一个,但我似乎并没有能够解决方案扩展到多维数组.
有帮助吗?
我想出一个好头衔有点问题,但我现在就解释一下.
我正在建立一个在线游戏.我正在努力建立销毁武器的选择.
我有4种武器 - 攻击,防御,巡逻和间谍.巡逻和间谍武器有3级武器,攻防有15级.
我有一个表格,每个类别与col.命名为w1,w2,w3,w4 ...和课程用户的ID.
我给了每个等级点,所以w15例如值15分,w2值2分,我建立了一个函数来计算攻击者摧毁了多少分给防守者.
我被困在哪里是如何随机挑选武器?
让我们说攻击者摧毁了100点武器.所以它可以是100种巡逻等级1的武器,或者每种类别中的25种武器,或者10种武器排名10.我需要它在类别(攻击,防御,巡逻和间谍)之间以及武器之间随机(w1, W2,W3 ..).另外我需要它在防守者拥有的武器数量的极限,他不能失去更多,然后他有.
非常感谢你 !!我知道我写了一个很长的问题
我想允许我的用户使用任何顺序的部分单词在数据库中搜索值,以便搜索到的字符串:
nan mu
Run Code Online (Sandbox Code Playgroud)
会以任何顺序返回包含both nan和的任何字符串mu.只有两位,它很容易array_filter()和这个答案中的解决方案创建字符串
%nan%mu%
%mu%nan%
Run Code Online (Sandbox Code Playgroud)
这样mysql就会搜索那些.现在我有一个问题,当有两个以上的位,例如nan mu te.目的是获得这些字符串:
$string1 = %nan%mu%te%
$string2 = %nan%te%mu%
$string3 = %mu%nan%te%
$string4 = %mu%te%nan%
$string5 = %te%nan%mu%
$string6 = %te%mu%nan%
Run Code Online (Sandbox Code Playgroud)
并使6 mysql LIKE条件,WHERE Field LIKE $string1 AND Field LIKE $string2 ...以便任何顺序中的这三个位的任何可能性将包含在结果中
对于那些即将抱怨sql注入的人,谢谢,但不,谢谢,我使用PDO和参数化查询.
我用字符串实际尝试nan mu te:
class EstDefini
{private $STR;
function __construct($vSTR)
{$this->STR = $vSTR;}
function Verifier($vSTR)
{return !($vSTR == $this->STR);}}
$vString = 'nan mu te';
$aBits = explode(' …Run Code Online (Sandbox Code Playgroud) 这可能是一个非常愚蠢的问题,但我无法理解PHP范围如何处理这段代码:
$leagueKey = 'NFL';
$response['response'] = array_filter($response['response'], function($tier){
return ($tier['LeagueKey'] === $leagueKey ? true : false);
});
Run Code Online (Sandbox Code Playgroud)
当我运行它时,我得到一个"Undefined variable:leagueKey"异常.另一方面,这非常有效:
$response['response'] = array_filter($response['response'], function($tier){
return ($tier['LeagueKey'] === 'NFL' ? true : false);
});
Run Code Online (Sandbox Code Playgroud)
为什么PHP不能在array_filter函数中看到我的$ leagueKey变量?
谢谢!
我需要在 PHP 中过滤数组,但不确定如何将参数传递给回调。本质上,我对数组中的每个项目进行两次比较。
// This data will be sent to the function as JSON so I'm "creating" the JSON here.
$data = json_encode(Array(
Array("StartDate"=>"2014/07/31","LocZipCode"=>"19406","LocationURL"=>"FSU","EventType"=>"UN"),
Array("StartDate"=>"2014/08/31","LocZipCode"=>"23513","LocationURL"=>"FSU","EventType"=>"UN"),
Array("StartDate"=>"2014/07/31","LocZipCode"=>"92108","LocationURL"=>"BU","EventType"=>"UN"),
Array("StartDate"=>"2014/09/30","LocZipCode"=>"78661","LocationURL"=>"BU","EventType"=>"UN")
));
// even using a global variable doesn't
// make it visible in getUniv() function
global $univ_seg;
$univ_seg = 'FSU';
getUA($data, $univ_seg);
function getUniv($var){
return($var["EventType"] == "UN" && $var["LocationURL"] == $univ_seg);
}
function getUA($data, $univ_seg) {
$univ_sched = json_decode($data, true);
$re = array_filter($univ_sched, "getUniv");
print_r($re);
}
Run Code Online (Sandbox Code Playgroud)
我也尝试过使用 lambda 但我无法让它工作。有任何想法吗??