Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка многомерного массива, Проблемы с переводом с JScript на PHP 
:(
    Опции темы
Aleskert
Дата 6.5.2012, 00:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 18.10.2008

Репутация: нет
Всего: нет



Есть код, отлично работающий на JScript:
Код

for(var key in t1.vehicles){ 
    if(t1.vehicles[key].clanAbbrev == "TEST" || t1.vehicles[key].clanAbbrev == "TEST2")
    {
        name_player[l] = t1.vehicles[key].name;
        l++;

    }
};

Код исполняется в цикле и в переменную name_player вбиваются все имена, которые подходят под условия из массива t1.
Сам массив получается из JSON в следующем виде:
Код

{
  "mapName": "steppes",
  "playerID": 1243711,
  "playerVehicle": "france-AMX_50_120",
  "gameplayType": "ctf",
  "playerName": "Aleskert",
  "vehicles": {
    "126875962": {
      "vehicleType": "france:AMX_13_90",
      "isAlive": true,
      "name": "Verik_25rus",
      "clanAbbrev": "",
      "team": 1,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875963": {
      "vehicleType": "ussr:IS-4",
      "isAlive": true,
      "name": "Svazz",
      "clanAbbrev": "BTR",
      "team": 2,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875964": {
      "vehicleType": "france:AMX_13_90",
      "isAlive": true,
      "name": "BITKOV123",
      "clanAbbrev": "",
      "team": 1,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875965": {
      "vehicleType": "ussr:IS-4",
      "isAlive": true,
      "name": "lunizzz",
      "clanAbbrev": "",
      "team": 1,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875966": {
      "vehicleType": "ussr:S-51",
      "isAlive": true,
      "name": "saschoook",
      "clanAbbrev": "_TTS_",
      "team": 1,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875967": {
      "vehicleType": "ussr:IS-4",
      "isAlive": true,
      "name": "glazov",
      "clanAbbrev": "BTR",
      "team": 2,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875968": {
      "vehicleType": "germany:JagdPzIV",
      "isAlive": true,
      "name": "1000Roentgen",
      "clanAbbrev": "T-T",
      "team": 2,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875969": {
      "vehicleType": "ussr:SU-152",
      "isAlive": true,
      "name": "briz018",
      "clanAbbrev": "",
      "team": 1,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875970": {
      "vehicleType": "germany:VK2801",
      "isAlive": true,
      "name": "Musechka",
      "clanAbbrev": "NSTR",
      "team": 1,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875971": {
      "vehicleType": "ussr:KV-3",
      "isAlive": true,
      "name": "kloun0",
      "clanAbbrev": "",
      "team": 2,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875972": {
      "vehicleType": "germany:G_Panther",
      "isAlive": true,
      "name": "JORGE",
      "clanAbbrev": "",
      "team": 1,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875973": {
      "vehicleType": "usa:M103",
      "isAlive": true,
      "name": "Kuvakei",
      "clanAbbrev": "",
      "team": 2,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875974": {
      "vehicleType": "ussr:IS-3",
      "isAlive": true,
      "name": "APELSIN010",
      "clanAbbrev": "SVM",
      "team": 2,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875975": {
      "vehicleType": "ussr:T-44",
      "isAlive": true,
      "name": "Das_gewitter_der_panzer",
      "clanAbbrev": "",
      "team": 1,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875976": {
      "vehicleType": "ussr:IS",
      "isAlive": true,
      "name": "Kniqht",
      "clanAbbrev": "",
      "team": 2,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875977": {
      "vehicleType": "france:AMX_50_120",
      "isAlive": true,
      "name": "Aleskert",
      "clanAbbrev": "UATDT",
      "team": 1,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875978": {
      "vehicleType": "usa:M12",
      "isAlive": true,
      "name": "lstgn",
      "clanAbbrev": "",
      "team": 2,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875979": {
      "vehicleType": "ussr:IS-4",
      "isAlive": true,
      "name": "uzerby",
      "clanAbbrev": "",
      "team": 1,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875980": {
      "vehicleType": "ussr:KV-5",
      "isAlive": true,
      "name": "elmasik",
      "clanAbbrev": "SVM",
      "team": 2,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875981": {
      "vehicleType": "usa:M5_Stuart",
      "isAlive": true,
      "name": "glosser13",
      "clanAbbrev": "",
      "team": 2,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875982": {
      "vehicleType": "germany:VK1602",
      "isAlive": true,
      "name": "kyrsant333",
      "clanAbbrev": "",
      "team": 2,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875983": {
      "vehicleType": "ussr:T-43",
      "isAlive": true,
      "name": "Mamlin3",
      "clanAbbrev": "",
      "team": 2,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875984": {
      "vehicleType": "germany:Lowe",
      "isAlive": true,
      "name": "rangar666",
      "clanAbbrev": "_UK_",
      "team": 1,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875985": {
      "vehicleType": "china:Ch01_Type59",
      "isAlive": true,
      "name": "niochem111",
      "clanAbbrev": "",
      "team": 2,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875986": {
      "vehicleType": "ussr:T-34-85",
      "isAlive": true,
      "name": "JokerSmoker",
      "clanAbbrev": "",
      "team": 1,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875987": {
      "vehicleType": "germany:G_Panther",
      "isAlive": true,
      "name": "GL_Andrey",
      "clanAbbrev": "",
      "team": 2,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875988": {
      "vehicleType": "ussr:T-34-85",
      "isAlive": true,
      "name": "1945vovan",
      "clanAbbrev": "",
      "team": 1,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875989": {
      "vehicleType": "ussr:SU-100",
      "isAlive": true,
      "name": "VLADIMIR290",
      "clanAbbrev": "",
      "team": 1,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875990": {
      "vehicleType": "usa:T32",
      "isAlive": true,
      "name": "chelovek74",
      "clanAbbrev": "74-RU",
      "team": 2,
      "events": {
        
      },
      "isTeamKiller": false
    },
    "126875991": {
      "vehicleType": "ussr:KV-5",
      "isAlive": true,
      "name": "vgsch9",
      "clanAbbrev": "",
      "team": 1,
      "events": {
        
      },
      "isTeamKiller": false
    }
  },
  "mapDisplayName": "\u0421\u0442\u0435\u043f\u0438",
  "dateTime": "25.04.2012 00:39:13"
}

Вопрос. Как средствами PHP выбрать все name если clanAbbrev == "TEST"
На входе имеем 
Код

$dat = json_decode($dat);

PM MAIL   Вверх
ksnk
Дата 6.5.2012, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Код

$t1 = json_decode($dat);

foreach ($t1['vehicles'] as $key=>$val){ 
    if($val['clanAbbrev'] == "TEST" || $val['clanAbbrev'] == "TEST2")
    {
        $name_player[l] = $val['name'];
    }
};


?


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
Aleskert
Дата 6.5.2012, 11:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 18.10.2008

Репутация: нет
Всего: нет



Решил. Моей ошибкой было использование массивов, в то время, когда переменная $dat - это объект. В итоге, доступ был реализован вот так:
Код

            foreach($dat->vehicles as $key => $index){
                echo $index->clanAbbrev;echo "<br>";
            };

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0756 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.