好的,我正在尝试为我玩的游戏(Runescape)创建一个老板杀死日志。我在互联网上发现,开发人员非常慷慨地拥有一个带有冒险日志的 api,可以记录您在游戏中所做的不同活动,bossing 就是其中之一。所以我把信息放到一个多维数组中,结构如下:
Array
(
[magic] => 5379429
[questsstarted] => 5
[totalskill] => 2333
[questscomplete] => 134
[questsnotstarted] => 95
[totalxp] => 163169890
[ranged] => 18656921
[activities] => Array
(
[0] => Array
(
[date] => 17-Dec-2017 21:51
[details] => I killed 8 graceful followers of Armadyl, all called Kree'arra. The gods have little imagination for names.
[text] => I killed 8 Kree'arras.
etc
.
.
)
上面的数组不是整个数组,我将其缩短以免太长,因为它是一个大数组。我想要做的只是获取说“我杀死了 x 老板”的值,在这种情况下,老板将是 Kree'arra。让我感到困惑的是,该字符串包含一个会发生变化的数字,如下所示:
“我杀了 5 个 kree'arras”
“我杀了 3 个 kree'arras”
所以我不能使用 if 语句,因为我永远不会知道使用比较运算符的确切字符串。我尝试使用array_search('I killed', array_column($runemetrics, 'text'))
,但出现空白屏幕。我尝试了一堆我在 stackoverflow 上找到的答案,但要么我得到了一个空白屏幕,要么部分是我想要的。我认为这是一个简单的解决方案。这是我的代码:
$get_runemetrics = file_get_contents("https://apps.runescape.com/runemetrics/profile/profile?user=Thee_Newb&activities=20");
$runemetrics = json_decode($get_runemetrics, true);
if(isset($runemetrics["activities"]) === TRUE){
for($i = 0; $i < count($runemetrics["activities"]); $i++){
echo $runemetrics["activities"][$i]["text"];
}
}
编辑:我忘了提到老板也改变了
您可以strpos()
用来检查是否text
有'I killed'
字符串
for($i = 0; $i < count($runemetrics["activities"]); $i++){
$text = $runemetrics["activities"][$i]["text"];
if (strpos($text, 'I killed') > -1) {
echo $text . '<br>';
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句