PHP Выбрать данные из Json - PullRequest
0 голосов
/ 03 августа 2020

Мои JSON Данные

{
  "users": [
    {
      "userid": 1,
      "username": "Admin",
      "usermail": "admin@admin.com",
      "authority": [
        {
          "authorityid": 1,
          "authoritytext": "Admin",
          "mission": [
            {
              "permission": "add"
            },
            {
              "permission": "delete"
            },
            {
              "permission": "move"
            }
          ]
        },
        {
          "authorityid": 1,
          "authoritytext": "Super Admin",
          "mission": [
            {
              "permission": "no add"
            },
            {
              "permission": "no delete"
            },
            {
              "permission": "only moderate"
            }
          ]
        }
      ]
    }
  ]
}

MY PHP

foreach($result->users as $ok)  {

     foreach($ok->authority as $okey) {

         foreach($okey->mission as $okeyokey) {

            $test = $okeyokey->permission;
            echo $test;

         }
     }
 }

Как это сделать? Я хочу показать синтаксический анализ json только полномочия {0} -> миссия {0} показать "разрешение" "добавить", пожалуйста, помогите мне. Возможно, посмотрите ScreenShot >>>>> Мне нужен фильтр {0} {1} {2} и выберите 0 -> показать синтаксический анализ json

введите описание изображения здесь

Ответы [ 2 ]

0 голосов
/ 03 августа 2020

Это то, что вы ищете?

<?php

$jsonData = '{
  "users": [
    {
      "userid": 1,
      "username": "Admin",
      "usermail": "admin@admin.com",
      "authority": [
        {
          "authorityid": 1,
          "authoritytext": "Admin",
          "mission": [
            {
              "permission": "add"
            },
            {
              "permission": "delete"
            },
            {
              "permission": "move"
            }
          ]
        },
        {
          "authorityid": 1,
          "authoritytext": "Super Admin",
          "mission": [
            {
              "permission": "no add"
            },
            {
              "permission": "no delete"
            },
            {
              "permission": "only moderate"
            }
          ]
        }
      ]
    }
  ]
}';

$data = json_decode($jsonData);
echo($data->users[0]->authority[0]->mission[0]->permission);
0 голосов
/ 03 августа 2020

Вы путаете объекты и массивы

foreach($result->users as $currentUser){
    $auths = $currentUser->authority;
    foreach($auths as $currentAuth){
        foreach($currentAuth->mission as $permission){
          foreach($permission as $positionLabel => $permissionValue){
              if($permissionValue == "add"){
                  // code here
              }
          }
        }
    }
}

Убедитесь, что вы используете хорошие метки. Фиктивные заполнители могут быть прекрасными, но они действительно затрудняют отслеживание ошибок. Я предполагаю, что вы хотите проверить, есть ли у них разрешение, используя базу данных, используя PDO?

// array
$arr = ["this", "is", "an", "array"];
echo $arr[0] // prints out the word this. 
$json = { "attribute": "value"}
echo $json->attribute // prints out the word value.

Вы можете иметь массивы в JSON объектах и ​​JSON Объекты в массивах. Доступ к ним отличается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...