配列の動作が異常になっています。私は重複キーを持つ配列を取得しています。私はこれがキーのデータ型によるものであることを確認しました。どのように私はそれをユニークにすることができます。私がチェックしarray_key_exists()
機能を試してみました配列から重複キーを削除する
Array
(
[1811258] => stdClass Object
(
[status] => true
[count] => 1
[price] => 2501
[attributes] =>
[groupid] => 2400
[subgroupid] => bux_364905
[desc] => GE Refrigerator - Side by Side GC5SHEXNQ..
[id] => 1811258
)
[1812193] => stdClass Object
(
[status] => true
[count] => 1
[price] => 293
[attributes] =>
[groupid] => 2410
[subgroupid] => 0
[desc] => STAINLESS STEEL DOUBLE BOWL - 20 GAUGE
[id] => 1812193
)
[1811258] => stdClass Object
(
[status] => 1
[count] => 1
[price] => 2501
[attributes] =>
[groupid] => 2400
[subgroupid] => bux_364905
[desc] => GE Refrigerator - Side by Side GC5SHEXNQ..
[id] => 1811258
)
[1852936] => stdClass Object
(
[status] => 1
[count] => 1
[price] => 525
[attributes] =>
[groupid] => 2489
[subgroupid] => 0
[desc] =>
[id] => 1852936
)
[1812193] => stdClass Object
(
[status] => 1
[count] => 1
[price] => 293
[attributes] =>
[groupid] => 2410
[subgroupid] => 0
[desc] => STAINLESS STEEL DOUBLE BOWL - 20 GAUGE
[id] => 1812193
)
)
:これは配列です
$saved=(array)json_decode($reviewdata->options);
foreach($optioncodes as $key=>$optioncode){
$option=$wpdb->get_row("SELECT * from {$prefix}builder_phaseplanoption where OptionCode='{$optioncode}' and SubdivisioNID='{$subdivision}'");
if($option){
if(array_key_exists($option->ID,$saved))
$saved[$option->ID]=(object)array('status'=>true,'count'=>1,'price'=>$option->UnitPrice,'attributes'=>'','groupid'=>$option->OptionGroupID,'subgroupid'=>$option->Sub_OptionGroupID,'desc'=>$option->OptionLongDesc,'id'=>$option->ID);
}
}
をしかし、誰effect.Iもこの
$optid=(string)$option->ID; // now this shoud string but no effect
$saved[$optid]=(object)array('status'=>true,'count'=>1,'price'=>$option->UnitPrice,'attributes'=>'','groupid'=>$option->OptionGroupID,'subgroupid'=>$option->Sub_OptionGroupID,'desc'=>$option->OptionLongDesc,'id'=>$option->ID);
I type.Likeデータを変更しようとしたんこれは、保存された配列のキーが文字列であり、新しいキーが数字であるという問題が原因であることがわかります。どのように私はそれらを同じタイプに変換することができます。
ありがとうございます。
のですか? – MKD
最後のコメントで申し訳ありません、 'array_unique()'です。 –
[配列内の重複するキーを削除する方法](https://stackoverflow.com/questions/7550826/how-to-remove-duplicate-keys-in-array) –