Как отсортировать массив php по значению и добавить массив в другой - PullRequest
0 голосов
/ 07 февраля 2012

Хорошо, я пишу приложение, которое позволяет мне видеть данные Steam из базы данных всех, кто зарегистрировался.

Я столкнулся с проблемой.Во-первых, Steam API для нескольких пользователей не стандартизирован.(например, каждый раз, когда вы обновляете this , позиция пользователя меняется (Какой API это делает?!)

Поскольку Steam не стандартизирует API, мне придется сделать это самому, поэтому после выполнения json_decode ($ url, true). Это не массив ассоциаций.

Я хочу отсортировать массив ассоциаций по идентификатору steam (который является числовым) и сопоставить их с моей собственной базой данныхuser (также содержит steam ID, но может быть отсортирован в базе данных), как мне это сделать?

Например

Массив 1:

array(3) {
  [0]=>
  array(2) {
    ["steam_id32"]=>
    string(17) "76561198025035234"
    ["name"]=>
    string(7) "Mitsuki"
  }
  [1]=>
  array(2) {
    ["steam_id32"]=>
    string(17) "76561197968270056"
    ["name"]=>
    string(3) "nrn"
  }
  [2]=>
  array(2) {
    ["steam_id32"]=>
    string(17) "76561197982490298"
    ["name"]=>
    string(4) "Ximp"
  }
}

Массив 2:

array(1) {
  ["response"]=>
  array(1) {
    ["players"]=>
    array(3) {
      [0]=>
      array(16) {
        ["steamid"]=>
        string(17) "76561197982490298"
        ["communityvisibilitystate"]=>
        int(3)
        ["profilestate"]=>
        int(1)
        ["personaname"]=>
        string(53) "……‮‮‮‮‮‮‮‮‮‮Ximp ……FUS RO DAH"
        ["lastlogoff"]=>
        int(1328569605)
        ["profileurl"]=>
        string(34) "http://steamcommunity.com/id/ximp/"
        ["avatar"]=>
        string(114) "http://media.steampowered.com/steamcommunity/public/images/avatars/f8/f8ee0cf00a2ec20417bf5b26b99fd6fb4dc176c1.jpg"
        ["avatarmedium"]=>
        string(121) "http://media.steampowered.com/steamcommunity/public/images/avatars/f8/f8ee0cf00a2ec20417bf5b26b99fd6fb4dc176c1_medium.jpg"
        ["avatarfull"]=>
        string(119) "http://media.steampowered.com/steamcommunity/public/images/avatars/f8/f8ee0cf00a2ec20417bf5b26b99fd6fb4dc176c1_full.jpg"
        ["personastate"]=>
        int(1)
        ["realname"]=>
        string(9) "I life in"
        ["primaryclanid"]=>
        string(18) "103582791430354400"
        ["timecreated"]=>
        int(1146939839)
        ["gameextrainfo"]=>
        string(20) "The Binding Of Isaac"
        ["gameid"]=>
        string(6) "113200"
        ["loccountrycode"]=>
        string(2) "DE"
      }
      [1]=>
      array(14) {
        ["steamid"]=>
        string(17) "76561197968270056"
        ["communityvisibilitystate"]=>
        int(3)
        ["profilestate"]=>
        int(1)
        ["personaname"]=>
        string(3) "nrn"
        ["lastlogoff"]=>
        int(1328618220)
        ["profileurl"]=>
        string(34) "http://steamcommunity.com/id/nrnx/"
        ["avatar"]=>
        string(114) "http://media.steampowered.com/steamcommunity/public/images/avatars/50/50b908e0aa2c730fa0f68ab0afc8b04fddb133f1.jpg"
        ["avatarmedium"]=>
        string(121) "http://media.steampowered.com/steamcommunity/public/images/avatars/50/50b908e0aa2c730fa0f68ab0afc8b04fddb133f1_medium.jpg"
        ["avatarfull"]=>
        string(119) "http://media.steampowered.com/steamcommunity/public/images/avatars/50/50b908e0aa2c730fa0f68ab0afc8b04fddb133f1_full.jpg"
        ["personastate"]=>
        int(1)
        ["realname"]=>
        string(9) "Nathaniel"
        ["primaryclanid"]=>
        string(18) "103582791432850562"
        ["timecreated"]=>
        int(1092771678)
        ["loccountrycode"]=>
        string(2) "US"
      }
      [2]=>
      array(14) {
        ["steamid"]=>
        string(17) "76561198025035234"
        ["communityvisibilitystate"]=>
        int(3)
        ["profilestate"]=>
        int(1)
        ["personaname"]=>
        string(23) "[ProudiA] Mitsuki Sakai"
        ["lastlogoff"]=>
        int(1328621807)
        ["commentpermission"]=>
        int(1)
        ["profileurl"]=>
        string(42) "http://steamcommunity.com/id/mitsukisakai/"
        ["avatar"]=>
        string(114) "http://media.steampowered.com/steamcommunity/public/images/avatars/9d/9d279f349422cbbed55adf1c8eabb0924ea0a719.jpg"
        ["avatarmedium"]=>
        string(121) "http://media.steampowered.com/steamcommunity/public/images/avatars/9d/9d279f349422cbbed55adf1c8eabb0924ea0a719_medium.jpg"
        ["avatarfull"]=>
        string(119) "http://media.steampowered.com/steamcommunity/public/images/avatars/9d/9d279f349422cbbed55adf1c8eabb0924ea0a719_full.jpg"
        ["personastate"]=>
        int(1)
        ["realname"]=>
        string(12) "酒井å‚è¼"
        ["primaryclanid"]=>
        string(18) "103582791432752089"
        ["timecreated"]=>
        int(1273714689)
      }
    }
  }
}

1 Ответ

0 голосов
/ 07 февраля 2012

Для массива сортировки вы можете найти список всех необходимых вам функций здесь

Обновление:

сначала вы должны создать массив 1d из 2d или 3d, вы можете использовать этот код для создания массива с легким доступом и сортировки (это пример):

<?php
$inArr;//This is the 2D array
$outArr = array();
for($i=0;$i<count($inArr);$i++){
   $outArr[$i] = $inArr[$i][0];
?>

затем вы можете отсортировать его с помощью ksort() или krsort() function.and для добавления массива в другой:

<?php
  $stack = array("value1", "value2");
  array_push($stack, "value3", "value4");
  print_r($stack);
?>
...