在没有循环的数组中获取 N 个位置的元素
如何让你得到元素和一个在位置数组在特定位置没有循环。key
value
n
想象
$postion = 3; // get array at 3rd position
$array = array(
"A" => "Four",
"B" => "twp",
"C" => "three",
"D" => "Four",
"E" => "Five",
"F" => "Four");
$keys = array_keys($array);
$value = array_values($array);
echo implode(array_slice($keys, $postion, 1)), PHP_EOL; // Key at 3rd posstion
echo implode(array_slice($value, $postion, 1)), PHP_EOL; // Value at n position
输出
D
Four
该方法的问题是
- 阵列的多次重复导致更高的内存使用率
为什么不使用循环
- 你必须多次获得多个位置..循环大型数据集也效率不高
为什么不使用数据库
- 是的,使用基于内存的数据库(如Redis)可以使生活更轻松,但是特殊的阵列优化
为什么不使用SplFixedArray
-
这本来是解决方案,但我跟随wer,因为我没有使用正键(我真的这在php部分也不公平)
Fatal error: Uncaught exception 'InvalidArgumentException' with message 'array must contain only positive integer keys'
大数据集是什么意思:
- 实际上,当我试图作为这个问题管理PHP中的巨型数组时,我偶然发现了这个问题,所以我正在查看或与
1e6
1e7
512M memory limit
我相信像数组这样的东西会做到这一点..但不确定是否存在fseek