加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php – Array中的重复键

发布时间:2020-05-25 09:06:15 所属栏目:PHP 来源:互联网
导读:在类型转换期间防止重复键的最佳方法是什么? 示例: //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($ar

在类型转换期间防止重复键的最佳方法是什么?

示例:

//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
)

现在我知道一些聪明的人会说它,因为一个键是字符串而另一个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,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
)
您可以使用 array_values功能重置阵列键.

试试这个:

$obj = (object)array(1,3);
$obj->{1} = "Duplicate key 1";
$obj->{2} = "Duplicate key 2";
$obj->{3} = "Duplicate key 3";
$array = (array)$obj ;

$array = array_values($array);
print_r($array);

产生这个:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => Duplicate key 1
    [4] => Duplicate key 2
    [5] => Duplicate key 3
)

或者您甚至可以在转换之前使用array_values,如下所示:

$array = array_values((array)$obj);

希望这可以帮助!

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读