首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更好的方法是在PHP中完成这个任务吗?

更好的方法是在PHP中完成这个任务吗?
EN

Stack Overflow用户
提问于 2011-01-06 18:07:36
回答 4查看 239关注 0票数 1

是否有更好的方法来获得与此相同的结果?

代码语言:javascript
运行
复制
foreach($data['report']->result_array() as $k){
    $array[] = $k['id'];
}

更好:在这种情况下,意思是更短,更容易阅读,或更好的语法整体。

我是个菜鸟,所以欢迎编程社区的评论/建议/一般智慧!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-01-06 18:13:54

我想不出比这更好的方法了。

当然,如果您能够更改result_array()函数,您可以引入一个新的参数来返回id字段。然而,在我看来,这降低了代码的可读性。

如果您只想从$data‘’report‘加载id,我建议定义一个返回所有id的新的专门方法。

票数 2
EN

Stack Overflow用户

发布于 2011-01-06 18:10:10

如果您只想从$ data‘’report‘的每个元素上的result_array函数返回的数据数组中提取'id’字段,并将其放入一个新的数组中,那么这可能是您所能得到的最有效的。

这件事你觉得有什么麻烦吗?在我看来,它看起来很好(虽然我从来不会将数组变量命名为"$array“--类似于$idArray的名称)--如果这是您必须处理的对象/数据结构的话。尽管如此,我认为这是恰当的评论,等等。

票数 1
EN

Stack Overflow用户

发布于 2011-01-06 18:17:57

代码语言:javascript
运行
复制
$array = array_map(function($k) { 
    return $k['id'];
}, $data['report']->result_array());

您只限于在“循环”中只做一件事情,所以我不知道它是否符合“更好”的条件。只是不一样。

有些人更喜欢map/ good风格的编程,但它在PHP代码中并不常见,因为语法不是最近才引入的好函数和匿名函数。

编辑:删除有关速度比较的部分。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4618144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档