2017-07-26 66 views
0

我想從具有最高'字節'值的對象'名稱'值。到目前爲止我的代碼是:PHP搜索多維數組從JSON的特定值

<?php 

$str = file_get_contents('https://yivesmirror.com/api/spigot'); 

$json = json_decode($str, true); 

echo get_highest($json); 

function get_highest($json) 
{ 
    foreach($json as $key => $val) 
    { 
     if (is_array($val)) $json[$key] = get_highest($val); 
    } 
    sort($json); 

    return array_pop($json); 
} 

?> 

從這個JSON文件:

{ 
    "spigot-1.12-R0.1-SNAPSHOT-b1364.jar": { 
     "name": "spigot-1.12-R0.1-SNAPSHOT-b1364.jar", 
     "size": { 
      "human": "40.52MB", 
      "bytes": 42488067 
     }, 
     "date": { 
      "human": "July 25, 2017", 
      "epoch": 1501040531 
     } 
    } 
}, 
{ 
    "spigot-api-1.12-R0.1-SNAPSHOT-shaded-b1364.jar": { 
     "name": "spigot-api-1.12-R0.1-SNAPSHOT-shaded-b1364.jar", 
     "size": { 
      "human": "4.10MB", 
      "bytes": 4297941 
     }, 
     "date": { 
      "human": "July 25, 2017", 
      "epoch": 1501040531 
     } 
    } 
} 

不幸的是,這是搜索所有按鍵和給我的「時代」的值不是「字節」值。 我如何能:

  • 只能從'字節'對象找到最高值?
  • 從它發現最​​大的「字節」值(如上所述)獲取'name'值?
+0

從json_decode()中刪除「true」,以便獲取對象。然後你可以使用OOP符號! –

+0

由於您的問題已被擱置,我不知道如何給您答案,但在測試中,我發現有時會出現一個名爲「spigot-latest.jar」的元素,它看起來完全包含您想要的內容。否則,這個網址會顯示我做了什麼來獲取信息。它在輸出結尾顯示源。 https://iconoun.com/demo/temp_snl.php –

+0

謝謝雷!這正是我所追求的,並感謝您對每個功能的評論! – SuperNovaLite

回答

0

當我運行你的PHP它給了我:
Notice: Undefined index: urls in C:\xampp\htdocs\FOLDER\FILE

但是,當我改變了

$json = json_decode($str, true);



$json = var_dump(json_decode($str, true));

重拍的$version VAR使用$version = $json['urls']['free']

然後我寫道:echo $version ,它給了我:

array(294) { [0]=> array(1) { ["spigot-1.12-R0.1-SNAPSHOT-b1364.jar"]=> array(6) { ["name"]=> string(35) "spigot-1.12-R0.1-SNAPSHOT-b1364.jar" ["version"]=> array(1) { ["minecraft"]=> string(4) "1.12" } ["size"]=> array(2) { ["human"]=> string(7) "40.52MB" ["bytes"]=> int(42488067) } ["date"]=> array(2) { ["human"]=> string(13) "July 25, 2017" ["epoch"]=> int(1501040531) } ["hashes"]=> array(2) { ["md5"]=> string(32) "482dc5b3273e3c9aa4ed38da73e9e9f2" ["sha1"]=> string(40) "921ad2d9fbe9bfbbd6d48a4c15196d20f265ca5c" } ["urls"]=> array(2) { ["paid"]=> string(119) "http://sh.st/st/40260a458161ce19c15c6bc46ebe3bd6/http://yivesmirror.com/grab/spigot/spigot-1.12-R0.1-SNAPSHOT-b1364.jar" ["free"]=> string(71) "http://yivesmirror.com/files/spigot/spigot-1.12-R0.1-SNAPSHOT-b1364.jar" } } } [1]=> array(1) { ["spigot-api-1.12-R0.1-SNAPSHOT-shaded-b1364.jar"]=> array(6) { ["name"]=> string(46) "spigot-api-1.12-R0.1-SNAPSHOT-shaded-b1364.jar" ["version"]=> array(1) { ["minecraft"]=> string(4) "1.12" } ["size"]=> array(2) { ["human"]=> string(6) "4.10MB" ["bytes"]=> int(4297941) } ["date"]=> array(2) { ["human"]=> string(13) "July 25, 2017" ["epoch"]=> int(1501040531) } ["hashes"]=> array(2) { ["md5"]=> string(32) "c9f7107d886bb349ab5dd6b02c86c97f" ["sha1"]=> string(40) "5f3898abbad835708db330a82864f209bd2bf712" } ["urls"]=> array(2) { ["paid"]=> string(130) "http://sh.st/st/40260a458161ce19c15c6bc46ebe3bd6/http://yivesmirror.com/grab/spigot/spigot-api-1.12-R0.1-SNAPSHOT-shaded-b1364.jar" ["free"]=> string(82) "http://yivesmirror.com/files/spigot/spigot-api-1.12-R0.1-SNAPSHOT-shaded-b1364.jar" } } } [2]=> array(1) { ["spigot-api-1.12-R0.1-SNAPSHOT-b1364.jar"]=> array(6) { ["name"]=> string(39) "spigot-api-1.12-R0.1-SNAPSHOT-b1364.jar" ["version"]=> array(1) { ["minecraft"]=> string(4) "1.12" } ["size"]=> array(2) { ["human"]=> string(8) "857.34kB" ["bytes"]=> int(877913) } ["date"]=> array(2) { ["human"]=> string(13) "July 25, 2017" ["epoch"]=> int(1501040531) } ["hashes"]=> array(2) { ["md5"]=> string(32) "d8f24dbb642125c9f0ce107cd312fc05" ["sha1"]=> string(40) "3048301386c77e1e114c1312493b41ad9a977b52" } ["urls"]=> array(2) { ["paid"]=> string(123) "http://sh.st/st/40260a458161ce19c15c6bc46ebe3bd6/http://yivesmirror.com/grab/spigot/spigot-api-1.12-R0.1-SNAPSHOT-b1364.jar" ["free"]=> string(75) "http://yivesmirror.com/files/spigot/spigot-api-1.12-R0.1-SNAPSHOT-b1364.jar" } } } [3]=> array(1) { ["spigot-api-1.12-R0.1-SNAPSHOT-shaded-b1363.jar"]=> array(6) { ["name"]=> string(46) "spigot-api-1.12-R0.1-SNAPSHOT-shaded-b1363.jar" ["version"]=> array(1) { ["minecraft"]=> string(4) "1.12" } ["size"]=> array(2) { ["human"]=> string(6) "4.10MB" ["bytes"]=> int(4297941) } ["date"]=> array(2) { ["human"]=> string(13) "July 25, 2017" ["epoch"]=> int(1501040074) } ["hashes"]=> array(2) { ["md5"]=> string(32) "a360db7231f58f61719920b6dd9c7d65" ["sha1"]=> string(40)... 

UPDATE:
如果從$json = json_decode($str, true);

然後你刪除true參數代碼應該工作