我已经使用此函数从数组中获取多列。array_column 的替代品。我已经创建了这个函数,因为 array_column 不能按照我的要求工作。
我的数据
$students =
Array
(
[0] => stdClass Object
(
[id] => 498
[uuid] => 6cb91efd-9111-4be8-a2d7-80d3edeed732
[name] => Andrew A. Blaine
[email] => student14@gmail1.com
[usertype_id] => 6
[first_name] => Andrew A.
[last_name] => Blaine
)
[1] => stdClass Object
(
[id] => 499
[uuid] => 208764a0-c53d-404b-ad05-ee7cba28a51c
[name] => Billie C. Heath
[email] => student15@gmail1.com
[usertype_id] => 6
[first_name] => Billie C.
[last_name] => Heath
)
)
我的功能
public function filterArrayByKeys($data, $keys = array()) {
$filterData = array_map(function($e) use ($keys) {
if (is_object($e)) {
foreach ($keys as $key) {
$filterArray[$key] = $e->$key;
}
return $filterArray;
} else {
foreach ($keys as $key) {
$filterArray[$key] = $e[$key];
}
return $filterArray;
}
}, $data);
return array_values(array_unique($filterData, SORT_REGULAR));
}
$students = $this->filterArrayByKeys($students, ['id', 'name', 'email']);
现在我的结果如我所料:
$students = Array
(
[0] => Array
(
[id] => 498
[name] => Andrew A. Blaine
[email] => student14@gmail1.com
)
[1] => Array
(
[id] => 499
[name] => Billie C. Heath
[email] => student15@gmail1.com
)
)
您可以使用此函数从数组中获取多列。希望这会帮助你。