PHPでインデックスを使って配列を組み立てた際の動作
4672 ワード
自分が思っていたのと違う動作をしていたのでメモ
$list = [];
$list[2] = 'c';
$list[0] = 'a';
$list[1] = 'b';
foreach ($list as $index => $element)
{
var_dump($index, $element);
}
int(2)
string(1) "c"
int(0)
string(1) "a"
int(1)
string(1) "b"
あれ?こんな動作だっけ
ソートされないのはJavaScriptでも同じだったけ?
と思ったので試してみました。
var list = [];
list[2] = "c";
list[0] = "a";
list[1] = "b";
list.forEach(function(element, index) {
console.log(index, element);
});
0 "a"
1 "b"
2 "c"
動作違うのかー。
PHPでは組み立てた後にksortを使わないといけない。PHPの配列は連想配列と言われるけどインデックスでも文字列キーと同じような扱いなのかな。
$list = [];
$list[2] = 'c';
$list[0] = 'a';
$list[1] = 'b';
ksort($list);
foreach ($list as $index => $element)
{
var_dump($index, $element);
}
int(0)
string(1) "a"
int(1)
string(1) "b"
int(2)
string(1) "c"
Author And Source
この問題について(PHPでインデックスを使って配列を組み立てた際の動作), 我々は、より多くの情報をここで見つけました https://qiita.com/horikeso/items/870d06a09e2edc8d2e8d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .