当前位置: 首页 > 知识库问答 >
问题:

看不懂的php数据结构?

山凌
2024-03-28

这是我拿到的一组php数据,我突然看不明白这是什么数据了?我去遍历不行,用arr[0]可以拿到objectclass的数组,但是这数组为什么是(6)?

array(6) {  ["count"] => int(5)  [0] => array(8) {    ["objectclass"] => array(3) {      ["count"] => int(2)      [0] => string(3) "top"      [1] => string(18) "organizationalUnit"    }    [0] => string(11) "objectclass"    ["ou"] => array(2) {      ["count"] => int(1)      [0] => string(6) "people"    }    [1] => string(2) "ou"    ["description"] => array(2) {      ["count"] => int(1)      [0] => string(18) "存放人员信息"    }    [2] => string(11) "description"    ["count"] => int(3)    ["dn"] => string(38) "ou=people,dc=info,dc=huel,dc=edu,dc=cn"  }  [1] => array(8) {    ["objectclass"] => array(3) {      ["count"] => int(2)      [0] => string(3) "top"      [1] => string(18) "organizationalUnit"    }    [0] => string(11) "objectclass"    ["ou"] => array(2) {      ["count"] => int(1)      [0] => string(5) "admin"    }    [1] => string(2) "ou"    ["description"] => array(2) {      ["count"] => int(1)      [0] => string(27) "存放管理员用户信息"    }    [2] => string(11) "description"    ["count"] => int(3)    ["dn"] => string(47) "ou=admin,ou=people,dc=info,dc=huel,dc=edu,dc=cn"  }  [2] => array(8) {    ["objectclass"] => array(3) {      ["count"] => int(2)      [0] => string(3) "top"      [1] => string(18) "organizationalUnit"    }    [0] => string(11) "objectclass"    ["ou"] => array(2) {      ["count"] => int(1)      [0] => string(4) "adm2"    }    [1] => string(2) "ou"    ["description"] => array(2) {      ["count"] => int(1)      [0] => string(30) "存放重置密码用户信息"    }    [2] => string(11) "description"    ["count"] => int(3)    ["dn"] => string(46) "ou=adm2,ou=people,dc=info,dc=huel,dc=edu,dc=cn"  }  [3] => array(8) {    ["objectclass"] => array(3) {      ["count"] => int(2)      [0] => string(3) "top"      [1] => string(18) "organizationalUnit"    }    [0] => string(11) "objectclass"    ["ou"] => array(2) {      ["count"] => int(1)      [0] => string(7) "teacher"    }    [1] => string(2) "ou"    ["description"] => array(2) {      ["count"] => int(1)      [0] => string(24) "存放教师用户信息"    }    [2] => string(11) "description"    ["count"] => int(3)    ["dn"] => string(49) "ou=teacher,ou=people,dc=info,dc=huel,dc=edu,dc=cn"  }  [4] => array(8) {    ["objectclass"] => array(3) {      ["count"] => int(2)      [0] => string(3) "top"      [1] => string(18) "organizationalUnit"    }    [0] => string(11) "objectclass"    ["ou"] => array(2) {      ["count"] => int(1)      [0] => string(7) "student"    }    [1] => string(2) "ou"    ["description"] => array(2) {      ["count"] => int(1)      [0] => string(24) "存放学生用户信息"    }    [2] => string(11) "description"    ["count"] => int(3)    ["dn"] => string(49) "ou=student,ou=people,dc=info,dc=huel,dc=edu,dc=cn"  }}

共有2个答案

晋俊贤
2024-03-28

0、1、2、3、4、"count",这不正好 6 个元素么……

$data = array(  "count" => 5,  array(), // 里面的内容懒得打了  array(),  array(),  array(),  array());var_dump($data);

你要是 foreach 遍历不了,那可能它是个自定义的 class 实例,重写了 Iterable。具体是啥类型你就 get_class 打印看看呗。

武向文
2024-03-28

这个数据结构看起来像是PHP中的关联数组(associative array)和嵌套数组的混合。让我们一步步地分析它。

首先,最外层的数组有6个元素,由数字0到5索引。每个元素都是一个关联数组,其中包含了多个键值对。

每个内部关联数组都包含以下键值对:

  • "count":一个整数,表示数组中的元素数量。
  • 数字索引(如0, 1, 2等):这些是数字索引的关联数组,但它们似乎并没有按照预期的顺序排列。

在每个内部关联数组中,数字索引对应的值又是一个关联数组,包含以下键值对:

  • "objectclass":一个包含3个元素的数组,其中包含"count"和两个字符串索引。这个数组可能表示对象的类或者类型。
  • "ou":一个包含两个元素的数组,表示组织单位(Organizational Unit)的名称。
  • "description":一个包含两个元素的数组,表示描述信息。

此外,数字索引0, 1, 2等似乎是用来表示键值对的顺序,但它们并没有明确的规律。这些数字索引对应的值都是字符串,如"objectclass""ou""description",它们似乎是用于描述内部关联数组中的键值对的。

至于你提到的为什么数组中的元素(6),这可能是因为你只展示了数组的一部分,或者数组实际上包含6个元素。不过,根据给出的数据,我们只能看到5个内部关联数组(索引0到4),所以可能需要查看完整的数组来确认元素数量。

要遍历这个数据结构,你可以使用嵌套的循环来访问每个内部关联数组和它们的键值对。例如:

foreach ($outerArray as $key => $innerArray) {    echo "Key: $key\n";    foreach ($innerArray as $subKey => $subValue) {        echo "  SubKey: $subKey, SubValue: $subValue\n";    }    echo "\n";}

这将帮助你更好地理解数据结构并访问其中的数据。希望这可以帮到你!

 类似资料:
  • 我目前正在运行mvn测试时收到此日志 我的pom.xml是这样的: 我的IssueTest.java如下所示: 我不知道为什么IssueTest.Java没有被正确读取,尽管我在maven surefire插件的构建配置中添加了它。 请告知。

  • 本文向大家介绍彻底搞懂PHP 变量结构体,包括了彻底搞懂PHP 变量结构体的使用技巧和注意事项,需要的朋友参考一下 PHP5 中的 zval 多数文章,在提到PHP5 变量结构体的时候,都提到:sizeof(zval) == 24, sizeof(zvalue_value) == 16,实际上这个论述并不准确,在 CPU 为 64bit 时,这个结果是正确的。 但当 CPU 为32bit 时: s

  • 我从此链接中获得了以下代码片段:https://www.gkogan.co/blog/save-url-parameters/ 简而言之,此代码旨在获取链接参数(如utm_source)并将其保存到sessionStorage中。我不明白的是教程没有解释的以下行: 此语法是什么意思?

  • 我有一个代码,在那里我需要根据外包的类型和依赖的类型搜索特定的数据(两个都下拉,每个下拉一个)。有3种类型的外包和4种类型的依赖。当外包id为1和2以及依赖者时,我可以进行搜索。当用户选择id为1或2的外包时,必须选择依赖者。当outsource id为3时,不需要选择dependent,因为用户将在这里查看中的所有数据,除非他们希望使用dependent查看。但问题是,当我选择这种类型的外包时,

  • 我正在设置一个新的wampserver,并使用名为“users”的表创建了一个新的数据库 apache 2.4.23 我的值实际上在数据库中,但在运行代码后页面中没有显示任何内容

  • 主要内容:1、再回顾:什么是服务注册中心?,2、Consul服务注册中心的整体架构,3、Consul如何通过Raft协议实现强一致性?,4、Consul如何通过Agent实现分布式健康检查?1、再回顾:什么是服务注册中心? 先回顾一下什么叫做服务注册中心? 顾名思义,假设你有一个分布式系统,里面包含了多个服务,部署在不同的机器上,然后这些不同机器上的服务之间要互相调用。 举个现实点的例子吧,比如电商系统里的订单服务需要调用库存服务,如下图所示。 现在的问题在于,订单服务在192.168.31.1