0

多次元配列の一部を既存の 2 次元 (連想) 配列に追加するにはどうすればよいですか?

たとえば、次の要素を持つ既存の連想配列の場合:

$builder = array();
$builder['builder_id'] =        $source['id'];
$builder['builder_name'] =      $source['name'];
$builder['builder_address'] =   $source['address'];

次の多次元配列の一部はどのようにできますか:

$selection[$category['category_name']]['item_name'] = $category_general['item_name'];
$selection[$category['category_name']]['item_source'] = $category_general['item_source'];
$selection[$category['category_name']]['item_image'] = $category_general['item_image'];

を追加して、次の構造を作成します。

$builder['builder_id']
$builder['builder_name']
$builder['builder_address']
$builder['category_name']
$builder['category_name']['item_name']
$builder['category_name']['item_source']
$builder['category_name']['item_image']

このような割り当ては機能しませんでした:

$builder['category_name'] = $selection[$category['category_name']];
$builder['category_name'] = $selection[$category['category_name']][];

助言がありますか?

ありがとう!

編集:
@symcbean あなたは正しいです。配列の null 要素が割り当てられているため、割り当てが失敗しました。
@Snowsickle は、指摘された問題の原因を特定したヒントに感謝します。

4

2 に答える 2

2

最初の割り当ては機能するはずです。

$builder['category_name'] = $selection[$category['category_name']];

$selection[$category['category_name']]配列に含まれるすべての値を配列に割り当てます$builder['category_name']

デモ

于 2012-08-15T21:08:42.983 に答える
0

割り当ては機能するはずですが、別の方法が必要な場合:

foreach($selection[$category['category_name']] as $key => $value)
{
    $builder['category_name'][$key] = $value;
}

しかし、繰り返しになりますが、配列を使用した代入は常にうまくいきました。

于 2012-08-15T21:06:55.040 に答える