如何搜索一个数组的部分值

好吧我正在尝试为我玩的游戏(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

回到顶部