2017-12-18 16 views
0

いいえ私がプレイしているゲーム(Runescape)のボスキルログを作成しようとしています。私はインターネット上で、開発者があなたがゲームでやっているさまざまな活動を記録する冒険のログを持つapiを持っているのに十分な優しさがあることを発見しました。だから私はそうように構成された多次元配列への情報だ:値の一部の配列を検索する方法

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ボスを殺した」という値を得るだけです。この場合ボスはクリーアラになるでしょう。どのような私は困惑してしまったのは、文字列のようなので、変更番号が含まれていることである。

ので、私が使用しカント

を「私は3 kree'arrasを殺した」

を「私は5 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"]; 

    } 

} 

編集:私は上司があまりにも

+0

を持っているかどうかをチェックするためにstrpos()を使用することができますを変更することを言及するのを忘れ、残りは同じままである場合、比較文字列内の数字の位置にワイルドカードを置くと、ifステートメントで動作する可能性があります。 – Geshode

+0

私はボスも変わったと言って忘れました –

答えて

1

番号のみが変更された場合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>'; 
    } 
} 
+0

私はそれが簡単な解決策であることを知っていました。 –

関連する問題