我有一个数组,如下所示:
Array
(
[0] => Array
(
[name] => stories
[results] => Array
(
[0] => Array
(
[id] => 1
)
[1] => Array
(
[id] => 2
)
)
)
[1] => Array
(
[name] => users
[results] => Array
(
[0] => Array
(
[id] => 1
)
[1] => Array
(
[id] => 2
)
)
)
)
这个数组存储在一个名为$fql
的变量中。我想访问名称为stories
的结果。我可以做:
$stories = $fql['0']['results']
然而,通过索引号而不是数组名称来选择数组似乎有点奇怪。
有没有其他方法可以访问[name] => stories
旁边数组中的结果?
试试这个:
foreach($fql as $arr) {
$$arr['name'] = $arr['results'];
}
这将把结果放入两个变量中,$stories
和$users
;
如果您不确定具有[name] => stories
的数组将始终位于索引0
上,则可以使用循环来查找它:
foreach($fql as $arr) {
if($arr['name'] == 'stories') {
// do stuff and break;
break;
}
}
如果你不确定故事总是第一个元素,你可以写一个函数来迭代数组:
function getValuesFor($term, $list) {
foreach ($list as $item) {
if ($item['name'] === $term) {
return $item['results'];
}
}
return array();
}
$results = getValuesFor('stories', $array);