ループなしで特定の位置にある位置配列の要素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
これは解決策だったでしょうが、正のキーを使用していないため、私はフォローします(私は本当にこれはPHPの部分では公平ではありません)
Fatal error: Uncaught exception 'InvalidArgumentException' with message 'array must contain only positive integer keys'
大規模なデータセットとはどういう意味ですか:
- 実際、この質問としてPHP でのメガ配列の管理
1e6
をしよう1e7
とすると、この問題に出くわします。512M memory limit
配列のようなものfseek
がうまくいくと確信しています..しかし、それが存在するかどうかはわかりません