如何搜索一个数组的部分值
好吧我正在尝试为我玩的游戏(Runescape)创建一个boss boss日志。我在互联网上发现,开发者非常有礼貌地拥有一个冒险日志,记录你在游戏中做的不同活动,老板是其中的一员。所以我就信息到一个多维数组构造成这样:如何搜索一个数组的部分值
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>';
}
}
以上是 如何搜索一个数组的部分值 的全部内容, 来源链接: utcz.com/qa/261202.html