我来自python背景,而类似的python数据类型(字典)是一组unordered个键值对.

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

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

var_dump($test);    

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

测试总是在条之前,我可以像你们看到的那样切片这个数组.那么,这是否总是保证在php版本之间订购?这个顺序就是我声明数组的顺序吗?所以有什么东西在内部指向"test"将[0]放置在数组中?我读过http://php.net/manual/en/language.types.array.php本书,但对这个问题没有太多的说明.感谢你的回复.泰

推荐答案

PHP关联数组(以及数字数组)are ordered,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
)

From the documentation:

PHPis actually an ordered map中的数组.映射是一种将值与键关联的类型.这种类型针对几种不同的用途进行了优化;它可以被视为数组、列表(向量)、哈希表(映射的实现)、字典、集合、堆栈、队列,可能还有更多.由于数组值可以是其他数组,所以树和多维数组也是可能的.

Php相关问答推荐

不以特定单词开头的正则表达式

Laravel:使用 HttpClient 的多个作业(job)的解决方案?

Htaccess 不允许访问带有参数的子目录

Laravel 自定义验证器返回页面而不是 json

Laravel Rest API 的子域无法正常工作 - IONOS 使用 Plesk

在两个不同的容器中运行 Nginx + PHP-FPM 时,该配置是否可以在不共享代码卷的情况下工作?

将 m3u8 播放列表文件转换为 XML 列表

Laravel 7 - 如何将多个数据插入 mysql 数据库

如何在 wordpress 项目 cpanel 中集成 laravel8 项目?

获取初始运行脚本的绝对路径

如何在 Laravel 中手动返回或抛出验证错误/异常?

为什么 1...1 判断为 10.1?

未指定应用程序加密密钥

获取数组的最后一个元素而不删除它的最佳方法是什么?

如何使用 Composer 安装特定版本的包?

从缓存中加载 Composer

更改 laravel 视图页面中的日期格式

laravel 5.3 新的 Auth::routes()

无法创建缓存目录.. 或目录不可写.在 Laravel 中进行无缓存

是否可以在 PHP 7 上指定多种返回类型?