如果我添加使用不同的密钥项目关联数组,并添加顺序保守?我如何访问给定元素的“上一个”和“下一个”元素?
6
A
回答
12
是的,PHP数组有一个隐式顺序。使用reset
,next
,prev
和current
- 或只是一个foreach
loop - 检查它。
9
是的,它确实保存了订单。你可以把php数组想象成ordered hash maps。
您可以将元素视为按“索引创建时间”排序。例如
$a = array();
$a['x'] = 1;
$a['y'] = 1;
var_dump($a); // x, y
$a = array();
$a['x'] = 1;
$a['y'] = 1;
$a['x'] = 2;
var_dump($a); // still x, y even though we changed the value associated with the x index.
$a = array();
$a['x'] = 1;
$a['y'] = 1;
unset($a['x']);
$a['x'] = 1;
var_dump($a); // y, x now! we deleted the 'x' index, so its position was discarded, and then recreated
总之,如果你加入其中的关键犯规当前存在的数组中的一个条目,该条目的位置将是列表的末尾。如果您正在更新现有密钥的条目,则位置不变。
foreach使用上面演示的自然顺序在数组上循环。如果你喜欢,你也可以使用next()current()prev()reset()和朋友,尽管自从foreach被引入语言以后,它们很少被使用。
另外,print_r()和var_dump()也使用自然数组顺序输出结果。
如果你对java很熟悉,LinkedHashMap是最相似的数据结构。
相关问题
- 1. 在PHP中保证关联数组的顺序吗?
- 2. h5py中的组是否保存其成员的添加顺序?
- 3. 保存活动记录,保存关联对象的顺序是什么?
- 4. JSON数组反序列化 - 是否总是保存元素的顺序?
- 5. Seq.groupBy是否在组内保持顺序?
- 6. 从YAML文件加载的Ruby数组是否保证其顺序保存?
- 7. 数组或列表中的项目是否保持其顺序?
- 8. 关联数组:将其保存为数组还是字符串?
- 9. 保存顺序的Ruby字符串/数组组合保留顺序
- 10. 使用NSKeyedArchiver保存关联数组
- 11. 是否保证在PHP中按照数组顺序迭代foreach?
- 12. 当保存主对象时,ActiveRecord是否保存了belongs_to关联?
- 13. 保留数组的顺序
- 14. 检查关联数组中是否存在键
- 15. JavaScript数组的顺序是否有保证?
- 16. PHP如何跟踪关联数组中的顺序?
- 17. 分组关联数组键 - 在相同的顺序
- 18. Rails ActiveRecord - 如何设置关联保存顺序
- 19. 按照相反的顺序排序关联数组索引
- 20. Java是否支持关联数组?
- 21. 是否保存了JSON列表中元素的顺序?
- 22. 从plist读取数组时,是否保证NSArray/NSMutableArray顺序?
- 23. LinkedHashSet构造函数是否保存顺序
- 24. 如何将php关联数组排序为特定顺序?
- 25. 使用自定义顺序对关联数组排序
- 26. 内存中的关联数组查找
- 27. 是否在MongoDB中保存了插入顺序?
- 28. 是否在Windows 7中保存兑现顺序?
- 29. 消息顺序是否保存在MQTT消息中?
- 30. 是否保证KeyListeners的调用顺序?