【发布时间】:2013-01-18 00:57:21
【问题描述】:
给定这个数组和一个名称(例如'def'),我如何获得包含数组或键?
$all = array(
'0' => array(
'name' => 'abc'
'option' => 1,
),
'1' => array(
'name' => 'def'
'option' => 1,
),
'2' => array(
'name' => 'ghi'
'option' => 0,
),
);
在给定 'def' 的情况下返回这个数组的最佳方法是什么?
$single = array(
'name' => 'def'
'option' => 1,
);
我可以这样做:
$single = array();
foreach ($all as $key => $value) {
if ($value['name'] == 'def') {
$single = $all[$key];
}
}
或者预渲染数组中的键,使其看起来像这样:
$all = array(
'abc' => array(
'name' => 'abc'
'option' => 1,
),
'def' => array(
'name' => 'def'
'option' => 1,
),
'ghi' => array(
'name' => 'ghi'
'option' => 0,
),
);
$single = $all['def'];
但我想知道是否有更短的 php 函数。
【问题讨论】:
-
foreach方法总是最适合这种情况(尽管如果在if块中包含break会稍微好一点)。你也可以用其他方式来做,但它们会更冗长,或更不清晰,或两者兼而有之。
标签: php arrays multidimensional-array