更改 php 中关联数组中元素的位置

Change position of elements in an associative array in php

我有一个关联数组:

$headers=
Array
(
    [MODULE_ID] => Module ID
    [PLATFORM_ID] => Platform ID
    [PACKAGE_GUID] => Package GUID
    [AGGREGATE_PACKAGE] => Aggregate Package
    [DELD] => Deld
)

现在我想更改包 ID 在顶部的位置,使其类似于:

 $desired=
Array
(
    [PACKAGE_GUID] => Package GUID
    [MODULE_ID] => Module ID
    [PLATFORM_ID] => Platform ID
    [AGGREGATE_PACKAGE] => Aggregate Package
    [DELD] => Deld
)

我尝试了 array_unshift 方法,但在这种情况下它不起作用,因为它是一个关联数组。

unset($headers['PACKAGE_GUID']);
array_unshift($headers, 'PACKAGE_GUID');

如何实现? 谢谢。

这是一种方法:

$arr = array_merge(array($key => $value), $arr);

$arr 是您的数组,$key$value 是您要移动到顶部的数组的相应值。

例如

$arr = array_merge(array('PACKAGE_GUID' => $arr['PACKAGE_GUID']), $arr);
unset($headers['PACKAGE_GUID']);
$desired = array( 'PACKAGE_GUID' => Package GUID ) + $headers;

如果您需要一个已经设置好的值,您可以使用:

$value = $headers['PACKAGE_GUID'];
unset($headers['PACKAGE_GUID']);
$desired = array( 'PACKAGE_GUID' => $value ) + $headers;
unset($headers['PACKAGE_GUID']);
array_unshift($headers, array('PACKAGE_GUID' => 'Package GUID'));

您可以通过对所需数组进行简单赋值来实现此目的

$headers= Array 
(['MODULE_ID'] => 'Module ID',
['PLATFORM_ID'] => 'Platform ID',
['PACKAGE_GUID'] => 'Package GUID',
['AGGREGATE_PACKAGE'] => 'Aggregate Package',
['DELD'] => 'Deld');

按您的要求输出:

    $desired=
Array
(
    [PACKAGE_GUID] => $headers['PACKAGE_GUID'],
    [MODULE_ID] => $headers['MODULE_ID'],
    [PLATFORM_ID] => $headers['PLATFORM_ID'],
    [AGGREGATE_PACKAGE] =>$headers['AGGREGATE_PACKAGE'],
    [DELD] => $headers['Deld']
);