1

我有一个看起来像这样的数组:

Array
(
    [0] => Array
        (
        [id] => abc
        [name] => Charlotte
        [state] => NC
        )
    [1] => Array
        (
        [id] => def
        [name] => Tampa
        [state] => FL
        )
)

我要做的是从每个嵌套数组('id'和'name')中提取两个值,在它们上运行一个函数,然后返回一个嵌套的数组。因此,对于每个 'id' 和 'name',将其传递给“function work($id,$name)”,它会返回一个数组,结果数组如下所示:

Array
(
    [0] => Array
        (
        [id] => abc
        [name] => Charlotte
        [state] => NC
        [restaurants] => Array (
                               [rname] => Good Burger
                               [rname] => McD
                               )
        )
    [1] => Array
        (
        [id] => def
        [name] => Tampa
        [state] => FL
        [restaurants] => Array (
                               [rname] => BK
                               [rname] => White Castle
                               )
        )
)

我在这里的搜索发现了几种从原始数组中提取值的方法(foreach() 循环),但我不确定将这些值传递给函数的最佳方法(array_walk 似乎不是这个选项case?),尤其是如何将嵌套数组返回到另一个嵌套数组中。

很高兴提供澄清是必要的。

4

2 回答 2

1
foreach ($array as $key => $value){
   $array[$key]['restaurants'] = work($value['id'],$value['name']);
}

function work($id,$name){
    $results = array();
    ///process data
    return $results;
}
于 2013-06-03T13:55:27.500 回答
1

尝试这样的事情:

foreach($cities as &$city){
    $city['restaurants'] = work($city['id'],$city['name']);
}

带有虚拟功能的演示

&$city告诉 PHP 您希望能够修改循环中的记录(通过引用而不是作为副本传递数组

在此之后,您可以简单地将restaurants值设置为函数返回的数组work

于 2013-06-03T13:56:06.413 回答