PHP使用简单的函数转换数组

时间:2018-06-08 16:18:25

标签: php arrays

是否会有一个简单的原生PHP函数来转换这个数组:

Array
(
[0] => stdClass Object
    (
        [id] => 1
        [module_libelle] => Qualités esthétiques
    )

[1] => stdClass Object
    (
        [id] => 2
        [module_libelle] => Qualités pragmatiques
    )
...
 )

在这个数组中:

Array
(
[1] => Qualités esthétiques
[2] => Qualités pragmatiques
...
)

没有像foreach这样的功能?

2 个答案:

答案 0 :(得分:2)

您可以使用array_map

$arr = //your array

$result = array_map(function($o){
    return $o->module_libelle; //Return the property of the object
}, $arr);

echo "<pre>";
print_r( $result );
echo "</pre>";

这将返回:

Array
(
    [0] => Qualités esthétiques
    [1] => Qualités pragmatiques
)

Doc:a rray_map()

答案 1 :(得分:1)

如果您还希望将id作为数组键保留在结果数组中,则可以使用array_walk

$result = array();
array_walk($array, function ($value) use (&$result) {
    $result[$value->id] = $value->module_libelle;
});

print_r($result);

Demo

或者您可以使用array_reduce

$array = array_reduce($array, function($carry, $item) {
    $carry[$item->id] = $item->module_libelle;
    return $carry;
});

print_r($array);

Demo