我想知道是否有一个内置的 php 函数可以实现我在这里要做的事情。我正在从 mysql 数据库中提取 id,这就是我得到的结果。
print_r($result);
// output
Array
(
[0] => SubCategory Object
(
[id] => 1
)
[1] => SubCategory Object
(
[id] => 5
)
这很好......相当标准(使用 Yii 框架)。
我需要做的是构建一个 ids 数组。应该看起来像这样
print_r($someArray);
// output
Array
(
[0] => 1
[1] => 5
[2] => 14
[3] => 2
那么有没有内置的函数可以做到这一点?或者我必须像这样循环它?
foreach ($result as $row) {
// append to new array here
}
提前致谢...
最佳答案
最好的方法是使用array_map
,它通过对起始数组中的每个元素应用转换函数来返回一个新数组。因此,请执行以下操作:
$idsArray = array_map(function($value) { return $value->id; }, $arrWithSubCategoryObjects);
请注意,上述内容适用于 php 5.3 及更高版本,它支持“匿名”功能。对于早期版本,请使用:
function mapFunction($value) { return $value->id; };
$idsArray = array_map("mapFunction", $arrWithSubCategoryObjects);
参见array_map了解更多信息。
关于php - 如何在 PHP 中从多维对象创建数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23945634/