PHP   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了php – Array中的重复键大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在类型转换期间防止重复键的最佳方法是什么?

例:

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

希望这可以帮助!

大佬总结

以上是大佬教程为你收集整理的php – Array中的重复键全部内容,希望文章能够帮你解决php – Array中的重复键所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。