私はPHP 5.6を使用しています。私はこのような配列があります。同じキーを持つ配列内の配列を動的にマージする
$array = [
0 => [
'[email protected]' => [
'email' => '[email protected]',
'firstname' => 'john',
'lastname' => 'drake',
'food' => 'burger',
],
],
1 => [
'[email protected]' => [
'email' => '[email protected]',
'firstname' => 'john',
'lastname' => 'drake',
'drink' => 'coke',
],
],
2 => [
'[email protected]' => [
'email' => '[email protected]',
'firstname' => 'sam',
'lastname' => 'win',
'food' => 'pizza',
],
],
3 => [
'[email protected]' => [
'email' => '[email protected]',
'firstname' => 'sam',
'lastname' => 'win',
'drink' => 'pepsi',
],
],
];
をさんは「食」とはカテゴリであり、彼らはアンケートが設定した方法に応じて異なることがあり、「飲む」としましょう。だから実際には "食べ物"、 "飲み物"、 "デザート"などがあります。ご覧のように、それぞれのカテゴリーごとに、それぞれの人物の配列があります。私は何をしたいのではなく、以下に表示されますように、一人一人によって配列をマージすることです:
$array = [
0 => [
'[email protected]' => [
'email' => '[email protected]',
'firstname' => 'john',
'lastname' => 'drake',
'food' => 'burger',
'drink' => 'coke', // Merged
],
],
1 => [
'[email protected]' => [
'email' => '[email protected]',
'firstname' => 'sam',
'lastname' => 'win',
'food' => 'pizza',
'drink' => 'pepsi', // Merged
],
],
];
私はしかし、私が読んだすべてのものから、array_merge
などarray_merge_recursive
を見てきましたそれらをマージするために配列を指定する必要があります。例えば、配列はarray_merge(array[0], array[1])
でなければなりません。ご覧のように、私は正確にこれを行うことはできません。なぜなら、一緒にマージする必要がある1人あたり2,3または4つの配列が存在する可能性があるからです。
どのように私は動的にそれらのすべての情報を一緒に表示するように各人のための配列をマージするのですか?
はループ内を単にトラバースして結果を生成します – Mojtaba