PHP - 在数组中获取数组并存储/操作

odd*_*uck 0 php arrays sorting

我在PHP中有一个现有的数组(当我使用时print_r):

Array (
    [0] => Array(
        [value] => 188
        [label] => Lucy
    )  
    [1] => Array (
        [value] => 189
        [label] => Jessica
    ) 
    [2] => Array (
        [value] => 192
        [label] => Lisa
    ) 
    [3] => Array (
        [value] => 167
        [label] => Carol
    ) 
    // and so on...
) 
Run Code Online (Sandbox Code Playgroud)

从这个数组我需要操作或创建一个新的数组,如下所示:

Array (
    [Lucy] => 188
    [Jessica] => 189
    [Lisa] => 192
    [Carol] => 167
) 
Run Code Online (Sandbox Code Playgroud)

这样做的最佳方法是什么?

我需要名字成为键,所以我可以按字母顺序排序,如下所示:

uksort($array, 'strnatcasecmp');
Run Code Online (Sandbox Code Playgroud)

For*_*ien 6

恕我直言,最好和最简单的选择是:

$newArray = [];
foreach ($array as $var) {
   $newArray[$var['label']] = $var['value'];
}
Run Code Online (Sandbox Code Playgroud)

注意:如果因为[]然后将第一行更改为经典版本而不起作用:$newArray = array();因为它是相同的.


Ale*_*sky 6

PHP 5.5有一个很好的新array_column()函数,它将完全适合你.我想你想要这样的东西:

$result = array_column($array, 'value', 'label');
Run Code Online (Sandbox Code Playgroud)