gpt4 book ai didi

php - 在 PHP 中使用数组作为数组的键

转载 作者:可可西里 更新时间:2023-11-01 13:15:22 26 4
gpt4 key购买 nike

我需要在数组和数字之间创建关联;由于 PHP 缺少 Map 类型,我正在尝试使用数组来实现此目的:

$rowNumberbyRow = array();
$rowNumberByRow[$rowData] = $rowNumber;

但是,当我评估代码时,出现以下错误:

警告:非法偏移类型

请注意,存储在数组 ($rowData) 中的数据没有任何我可以用作 $rowNumberByRow 键的“唯一”值数组。

谢谢!

更新:为了回答我的一些评论者,我正在尝试创建一个 lookup table这样我的应用程序就可以在 O(1) 时间内找到给定行的行号。

最佳答案

PHP 确实有一个 map 类:它叫做 SplObjectStorage .可以使用与一般数组完全相同的语法访问它(参见 the reference 上的示例 #2)。

但要使用该类,您必须使用 the ArrayObject class而不是数组。它的处理方式与数组完全相同,您可以从数组构造实例(例如 $arrayObject = new ArrayObject($array))。

如果您不想使用这些类,您也可以只创建一个函数来为您的索引创建唯一的哈希字符串。例如:

function myHash($array){
return implode('|',$array);
}
$rowNumberByRow[myHash($array)] = $rowNumber;

当然,您必须确保您的散列值确实是唯一的,我强烈建议您使用 SplObjectStorage,并可能阅读更多有关 php 的 SPL 类的信息。

关于php - 在 PHP 中使用数组作为数组的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7018976/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com