加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP – 关联数组:更改键值对的键,其中value是类对象

发布时间:2020-12-13 16:46:19 所属栏目:PHP教程 来源:网络整理
导读:我有一个形式的关联数组: $input = array("one" = class object1,"two" = class object2,... //and so on); $input的键保证是唯一的.我还有一个名为moveToHead($key)的方法,它将$input [$key]元素移动到该关联数组的第0个位置.我有几个问题: 是否可以确定
我有一个形式的关联数组:

$input = array("one" => <class object1>,"two" => <class object2,... //and so on);

$input的键保证是唯一的.我还有一个名为moveToHead($key)的方法,它将$input [$key]元素移动到该关联数组的第0个位置.我有几个问题:

>是否可以确定关联数组的索引?
>如何移动相应的$key =>的数组条目$value对索引0并保留$key原样?
>什么是实现上述两点的最佳方法?

我想为第二点(一个子解决方案)做array_flip,但后来发现array_flip只能在数组元素是int和string时才能完成.有什么指针吗?

解决方法

使用名为array_keys的函数,您可以确定键的索引:

$keys = array_flip(array_keys($input));
printf("Index of '%s' is: %dn",$key,$keys[$key]);

要在特定位置插入数组(例如在开头),有array_splice功能.因此,您可以创建要插入的数组,从旧位置删除值并将其拼接在:

$key = 'two';
$value = $input[$key];
unset($input[$key]);    
array_splice($input,array($key => $value));

array union operator可能有类似的东西,但只是因为你想要移到顶部:

$key = 'two';
$value = $input[$key];
unset($input[$key]);
$result = array($key => $value) + $input;

但我认为这可能比array_splice有更多的开销.

(编辑:李大同)

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

    推荐文章
      热点阅读