![](/img/trans.png)
[英]PHP, In a string, how to put two words beside each other or more in parentheses?
[英]How to put other elements of two array beside similar ones in PHP
我有兩個像這樣的數組:
$a1 = array(
array('fisrtname' => 'john', 'lastname' => 'smith', 'c1' => 10),
array('fisrtname' => 'jane', 'lastname' => 'smith', 'c1' => 20),
...
);
$a2 = = array(
array('fisrtname' => 'john', 'lastname' => 'smith', 'c2' => 40),
array('fisrtname' => 'jane', 'lastname' => 'smith', 'c2' => 50),
...
);
我需要將這兩個結合起來:
$a3 = = array(
array('fisrtname' => 'john', 'lastname' => 'smith', 'c1' => 10, 'c2' => 40),
array('fisrtname' => 'jane', 'lastname' => 'smith', 'c1' => 20, 'c2' => 50),
...
);
如何使用PHP和更少的代碼來實現?
您要查找的函數可能只是一個函數調用: array_replace_recursive()
$a1 = array(
array('fisrtname' => 'john', 'lastname' => 'smith', 'c1' => 10),
array('fisrtname' => 'jane', 'lastname' => 'smith', 'c1' => 20),
);
$a2 = array(
array('fisrtname' => 'john', 'lastname' => 'smith', 'c2' => 40),
array('fisrtname' => 'jane', 'lastname' => 'smith', 'c2' => 50),
);
$result = array_replace_recursive($a1, $a2);
var_dump($result);
這使:
array(2) {
[0]=>
array(4) {
["fisrtname"]=>
string(4) "john"
["lastname"]=>
string(5) "smith"
["c1"]=>
int(10)
["c2"]=>
int(40)
}
[1]=>
array(4) {
["fisrtname"]=>
string(4) "jane"
["lastname"]=>
string(5) "smith"
["c1"]=>
int(20)
["c2"]=>
int(50)
}
}
您可以使用array_map和array_merge函數來完成此操作。
$a3 = array_map("array_merge",$a1, $a2);
如果數組a1和a2的長度相同,則可以使用以下代碼:
<?php
$a1 = array(
array('fisrtname' => 'john', 'lastname' => 'smith', 'c1' => 10),
array('fisrtname' => 'jane', 'lastname' => 'smith', 'c1' => 20)
);
$a2 = array(
array('fisrtname' => 'john', 'lastname' => 'smith', 'c2' => 40),
array('fisrtname' => 'jane', 'lastname' => 'smith', 'c2' => 50)
);
for ($i=0; $i < count($a1); $i++) {
$a3[$i] = array_merge($a1[$i],$a2[$i]);
$a3[$i] = array_unique($a3[$i]);
}
var_dump($a3);
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.