PHP从Json中选择数据

PHP从Json中选择数据,php,arrays,json,Php,Arrays,Json,我的JSON数据 { "users": [ { "userid": 1, "username": "Admin", "usermail": "admin@admin.com", "authority": [ { "authorityid": 1

我的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"
            }
          ]
        }
      ]
    }
  ]
}
我的PHP

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

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

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

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

         }
     }
 }
怎么做这个? 我要显示仅解析json的权限{0}->misson{0}显示“权限”“添加”请帮助我。 可能看截图>>>>> 我需要过滤器{0}{1}{2},然后选择0->showparsejson


您正在混淆对象和数组

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
              }
          }
        }
    }
}
确保你使用的是好标签。虚拟占位符可以很好,但它使跟踪bug变得非常困难。我假设您想检查他们是否拥有使用数据库、使用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对象。您访问它们的方式不同。

这就是您想要的吗

<?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);

你好!请不要在问题中添加不相关的标签。我看不出你的问题与MySQL或curl有任何关系。事实上,它甚至与JSON解析无关,因为您询问的是对象的转换(您以前可能从解析JSON中获得,但这不是您的问题的一部分)。我们假设您是否了解
JSON\u decode()
,谢谢。权限==='add'>>>not==='add'>>not static update json此操作不起作用。如果你愿意,你可以试试。仅供参考。太多的
foreach
循环。你可以简单地在两个循环中完成这项工作,如果OP只想要直接文本
add
,甚至不需要循环。这项工作很有效,我不确定他们是只想要那一个,还是在我发表那篇文章的时候。