简单的PHP数组搜索

时间:2012-03-07 01:14:10

标签: php arrays

我有一个如下所示的数组:

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旁边的数组中访问结果吗?

3 个答案:

答案 0 :(得分:0)

试试这个:

foreach($fql as $arr) {
    $$arr['name'] = $arr['results'];
}

这会将结果分为两个变量,$stories$users;

答案 1 :(得分:0)

如果您不确定[name] => stories的数组是否始终位于索引0上,您可以使用循环来查找它:

foreach($fql as $arr) {
   if($arr['name'] == 'stories') {
      // do stuff and break;
      break;
   }
}

答案 2 :(得分:0)

如果您不确定故事将始终是第一个元素,您可以编写一个函数来迭代数组:

function getValuesFor($term, $list) {
    foreach ($list as $item) {
        if ($item['name'] === $term) {
            return $item['results'];
        }
    }
    return array();
}
$results = getValuesFor('stories', $array);