型キャスト時に重複するキーを防ぐ最良の方法は何ですか?配列内の重複キー
例:
//Credits @bwoebi
$obj = (object)array(1,2,3);
$obj->{1} = "Duplicate key 1";
$obj->{2} = "Duplicate key 2";
$obj->{3} = "Duplicate key 3";
$array = (array)$obj ;
print_r($array);
出力
Array
(
[0] => 1
[1] => 2
[2] => 3
[1] => Duplicate key 1
[2] => Duplicate key 2
[3] => Duplicate key 3
)
は今、私はいくつかのスマートな人々は言うだろう知っているその1 key
がstring
や他のint
使用ですのでvar_dump
var_dump($array);
出力
array (size=6)
0 => int 1
1 => int 2
2 => int 3
'1' => string 'Duplicate key 1' (length=15)
'2' => string 'Duplicate key 2' (length=15)
'3' => string 'Duplicate key 3' (length=15)
しかし、主な問題があるがループすることなく、この問題の任意の回避策も、キー
echo $array['1'] ,PHP_EOL; //Expected Duplicate key 1
echo $array[1] ,PHP_EOL;
出力
2
2
を取得する方法はありません?明らかに、@PeeHaa埽が再びビールにならない限り、私はこのミスを決してしませんでしたが、どんな答えでも教育を受けたPHP
の開発者に役立つはずです。
注。 - これはイースリーあなたは配列のキーをリセットするためにarray_values機能を使用することができますarray_values
、sort
またはキーの位置を変更する任意のPHP関数
例
sort($array);
print_r($array);
出力
Array
(
[0] => Duplicate key 1
[1] => Duplicate key 2
[2] => Duplicate key 3
[3] => 1
[4] => 2
[5] => 3
)
この質問は、キーの「重複」の防止や正しい値へのアクセスについてですか? – PeeHaa
@PeeHaa埽私は両方とも.... – Baba