我需要合併兩個「三維」數組,但我的問題是,當第一個數組鍵與另一個相同時,結果只是...不是可取的。嘗試合併兩個多維數組並保留鍵
的位置例如:
$a = array(
1=>array(
-1 => array(-1=>'a: 1 -1 -1',0=>'a: 1 -1 0',1=>'a: 1 -1 1'),
0 => array(-1=>'a: 1 0 -1', 0=>'a: 1 0 0', 1=>'a: 1 0 1'),
1 => array(-1=>'a: 1 1 -1', 0=>'a: 1 1 0', 1=>'a: 1 1 1')
)
);
$b = array(
1=>array(
1 => array(-1=>'b: 1 1 -1',0=>'b: 1 1 0',1=>'b: 1 1 1'),
2 => array(-1=>'b: 1 2 -1',0=>'b: 1 2 0',1=>'b: 1 2 1'),
3 => array(-1=>'b: 1 3 -1',0=>'b: 1 3 0',1=>'b: 1 3 1')
)
);
做$ A + $ B的結果是:
Array
(
[1] => Array
(
[-1] => Array
(
[-1] => a: 1 -1 -1
[0] => a: 1 -1 0
[1] => a: 1 -1 1
)
[0] => Array
(
[-1] => a: 1 0 -1
[0] => a: 1 0 0
[1] => a: 1 0 1
)
[1] => Array
(
[-1] => a: 1 1 -1
[0] => a: 1 1 0
[1] => a: 1 1 1
)
)
)
,我需要告訴PHP,「哎,鍵[1] [ 2] [b]中的[X]和[1] [3] [X]不在'a'數組中,因此將它們合併到結果中。
我甚至都不在乎在三個鍵都相同的情況下,哪一個PHP將要執行的操作。鍵的值是字符串,所以我也沒有興趣總結這些值。我需要保留鍵,這樣一個簡單的array_merge就沒用了。也許我需要將它與其他功能結合起來,但我看不到哪一個。
在此先感謝。
出於興趣,您是否嘗試過使用[array_merge_recursive](http://www.php.net/manual/en/function.array-merge-recursive.php)或[array_replace_recursive](http:// www。 php.net/manual/en/function.array-replace-recursive.php)來獲得期望的結果? – Tom
我不想讓PHP跟我說話。我只是想與PHP「交談」,但我不知道如何去做。 – cooper
看看這裏:http://php.net/manual/en/function.array.php當然,你可以找到一些東西讓你更容易。 PHP通常爲函數使用有意義的名稱 – Mojtaba