1

次のような配列があります。

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

私がやろうとしているのは、ネストされた各配列 (「id」と「name」) から 2 つの値を取得し、それらに対して関数を実行して、ネストされた配列を返すことです。したがって、それぞれの '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 は、このオプションのようには見えません)。ケース?)、特にネストされた配列を別のネストされた配列に返す方法について説明します。

明確化を提供できることをうれしく思います。

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 に答える