php - 如何在 PHP 中从多维对象创建数组?

标签 php mysql yii

我想知道是否有一个内置的 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/

相关文章:

php - 将数据从 PHP(客户端)传输到 Python 脚本(服务器)

php - 从每个对话 sql 中获取最后一条消息

mysql - Zend 框架中的 ORDER BY FIELD(orderNum, 1,2,0)

yii - Chtml::encode 和 CHtmlPurifier 有什么区别?

PHP:如果图像存在则显示图像,否则显示不同的图像

javascript - Editablegrid mysql 绑定(bind)未更新

php - 如何选择每第n条记录?

php - Current_timestamp 未显示本地时间

php - Yii2 - 多语言

php - 在 YII 中动态添加语言