【发布时间】:2014-06-30 07:24:47
【问题描述】:
在这样的数组中:
Array
(
[1] => Array
(
[name] => boat
[id] => 2
)
[2] => Array
(
[name] => house
[id] => 5
)
)
在 php 中, 如何选择“id”等于 5 的元素“名称”? (房子)
(使用 id 5 表示“房子”)
编辑:我可以避免循环吗?耗电少的东西可能吗?
【问题讨论】:
-
基本循环:
foreach ($array as $sub) { if ($sub['id'] == 5) { echo $sub['name']; } } -
如果你想通过类似于SQL的语法访问数组,也许你想考虑使用LINQ或类似的;或者,一个非常简单的array_filter()... 但你无法避免循环,只需隐藏循环或循环通过 PHP 的底层 C 代码
-
您还可以重新格式化您的阵列以便更轻松/更快地访问。在构建数组时将
id设置为第一级键(或之后循环并创建一个新数组)。 -
不做疯狂的事,可能不会。如果您可以显示创建此数组的代码,那么让 SQL 为您完成工作可能会更容易 =)
-
你不应该在恕我直言的早期担心微观性能。瓶颈通常存在于系统的其他部分。正如@MonkeyZeus 已经提到的,优化查询以仅返回一个结果,从而完全避免循环从长远来看会更好。