当前位置: 首页 > 面试题库 >

是否已订购PHP关联数组?

麹飞航
2023-03-14
问题内容

我来自python背景,类似的python数据类型(字典)是一组 无序 的键值对。

我想知道PHP关联数组是否无序?他们似乎是有序的。

$test = array(
  'test' => 'test',
  'bar' => 'bar',
);

var_dump($test);

var_dump(array_slice($test, 0, 1));

测试总是在bar之前进行,我可以如您所见地对该数组进行切片。那么,是否始终保证可以跨PHP版本订购?该命令就是我声明数组的命令吗?因此,内部是否有某些东西指向“测试”以将[0]放置在数组中?我已经阅读了http://php.net/manual/en/language.types.array.php,但是在这个问题上并没有太多的启示。感谢您的答复。泰


问题答案:

PHP关联阵列(以及数字阵列) 是有序的
,并且PHP提供的各种功能,以解决诸如数组键排序ksort()uksort()krsort()

此外,PHP允许您用数字键乱序声明数组:

$a = array(3 => 'three', 1 => 'one', 2 => 'two');
print_r($a);

Array
(
    [3] => three
    [1] => one
    [2] => two
)
// Sort into numeric order
ksort($a);
print_r($a);
Array
(
    [1] => one
    [2] => two
    [3] => three
)

从文档中:

PHP中的数组 实际上是有序映射
。映射是一种将值与键相关联的类型。该类型已针对多种不同用途进行了优化。可以将其视为数组,列表(向量),哈希表(地图的实现),字典,集合,堆栈,队列,甚至更多。由于数组值可以是其他数组,因此树和多维数组也是可能的。



 类似资料:
  • 问题内容: 是否可以对第一个查询进行排序并保留返回的行作为第一行,而不对第二个查询进行排序。(如果有道理) 我当前查询的一个示例是: 我希望“苹果”类别下的设备将按照该列表的顺序进行组织,并位于其他设备上方的列表顶部。但这似乎使两个查询混杂在一起。 问题答案: 您需要引入一个人工排序键。就像是:

  • 问题内容: 大家好!长话短说,如果您不介意向这个新手PHPer伸出援手的话。:) 我有一个名为“类别”的数据库字段,其中存储有以下内容: 我在数据库中还有一个单独的表,其中每个项目的字段中都有具有这些类别名称的项目。现在,该脚本(我想对其进行分叉)使用: 为了显示所有可用类别的列表。很简单吧? Welllllll .....我不想按ASC排序,我想按我提到的第一个Categories字段中的项目列

  • 问题内容: 我有一个关联数组,但是当我使用以下函数向其添加值时,它似乎会覆盖相同的键。有没有办法让多个相同的键具有不同的值?还是存在具有相同格式的另一种形式的数组? 我希望有: 码: 问题答案: 不可以,关联数组中不能有多个相同的键。 但是,您可以拥有唯一的键,每个键的对应值都是数组,并且这些数组的每个键都有多个元素。 所以代替这个… …你有这个:

  • 我在通过函数删除文件时遇到问题。当文件名为西里尔字母时,该函数不起作用。 [24-Jul-2012 00:33:35 UTC]PHP警告:取消链接(/home/gtsvetan/public_html/МъжъУ.doc)[function.unlink]:在/home/gtsvetan/public_html/deleter中没有这样的文件或目录。php在线114 那么,当名称被西里尔化时,如何

  • 问题内容: PHP将所有数组视为关联数组,因此没有任何内置函数。谁能推荐一种相当有效的方法来检查数组是否仅包含数字键? 基本上,我希望能够区分以下两者: 和这个: 问题答案: 您问了两个不完全相同的问题: 首先,如何确定数组是否只有数字键 其次,如何确定数组是否具有从0开始的 连续 数字键 考虑您实际上需要哪种行为。(这也许可以满足您的目的。) 对于第二个问题(检查数组是否为零索引和顺序索引),可

  • 问题内容: 我想知道是否有一种方法可以测试您是否已订阅Android方面的主题。 基本上,我 希望 所有的设备将其安装在订阅一个主题,当第一次由设备获取的令牌。但是,设备总是有可能无法订阅。FCM注册令牌应该在设备上安装很长时间,因此,在不清除数据,卸载/重新安装等情况下,不应再次调用onTokenRefresh()方法。 我的想法是测试以查看设备是否已订阅MainActivity中的主题,如果没