PHP - 获取数组中的数组和 store/manipulate
PHP - Get array within array and store/manipulate
我在 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...
)
从这个数组我需要像这样操作或创建一个新数组:
Array (
[Lucy] => 188
[Jessica] => 189
[Lisa] => 192
[Carol] => 167
)
最好的方法是什么?
我需要将名称作为键,这样我就可以像这样按字母顺序排序:
uksort($array, 'strnatcasecmp');
恕我直言,最好和最简单的选择是:
$newArray = [];
foreach ($array as $var) {
$newArray[$var['label']] = $var['value'];
}
注意:如果因为 []
而不起作用,则将第一行更改为经典版本:$newArray = array();
因为它是一样的。
PHP 5.5 有一个不错的新 array_column() 功能,可以为您做到这一点。我想你想要这样的东西:
$result = array_column($array, 'value', 'label');
您也可以使用 array_reduce,如下所示:
$new_array = array_reduce($old_array, function($new_array, $item) {
$new_array[$item['label']] = $item['value'];
return $new_array;
}, array());
在简单的场景中,这可以说是矫枉过正。在进行大量数组转换的应用程序中,array_reduce 的第二个参数可以根据上下文提取和替换。
我在 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...
)
从这个数组我需要像这样操作或创建一个新数组:
Array (
[Lucy] => 188
[Jessica] => 189
[Lisa] => 192
[Carol] => 167
)
最好的方法是什么?
我需要将名称作为键,这样我就可以像这样按字母顺序排序:
uksort($array, 'strnatcasecmp');
恕我直言,最好和最简单的选择是:
$newArray = [];
foreach ($array as $var) {
$newArray[$var['label']] = $var['value'];
}
注意:如果因为 []
而不起作用,则将第一行更改为经典版本:$newArray = array();
因为它是一样的。
PHP 5.5 有一个不错的新 array_column() 功能,可以为您做到这一点。我想你想要这样的东西:
$result = array_column($array, 'value', 'label');
您也可以使用 array_reduce,如下所示:
$new_array = array_reduce($old_array, function($new_array, $item) {
$new_array[$item['label']] = $item['value'];
return $new_array;
}, array());
在简单的场景中,这可以说是矫枉过正。在进行大量数组转换的应用程序中,array_reduce 的第二个参数可以根据上下文提取和替换。