在PHP中,我有一个数组如下:
array(35) {
[0] => array(11) {
'dept_number' → str•4 '2310'
'dept_descr' → str•10 'Some Stuff'
}
[1] => array(11) {
'dept_number' → str•4 '1010'
'dept_descr' → str•11 'Other Stuff'
}
...and so on
我有另一个数组如下:
array(22) {
[2310] => str•6 'Bakery'
[1010] => str•4 'Beer'
...and so on
我想用第二个数组中的描述替换第一个数组中的dept_descr,其中第一个数组中的dept_number与第二个数组中的键匹配。所以,结果将是:
array(35) {
[0] => array(11) {
'dept_number' → str•4 '2310'
'dept_descr' → str•6 'Bakery'
}
[1] => array(11) {
'dept_number' → str•4 '1010'
'dept_descr' → str•4 'Beer'
}
这是怎么做到的?
答案 0 :(得分:0)
试试这个:
$original = array(
array(
'dept_number' => 2310,
'dept_descr' => 'Some Stuff'),
array(
'dept_number' => 1010,
'dept_descr' => 'Other Stuff'));
$descriptions = array(
2310 => 'Bakery',
1010 => 'Beer');
foreach($original as &$element) {
$element['dept_descr'] = $descriptions[$element['dept_number']];
}
print_r($original);
输出:
Array
(
[0] => Array
(
[dept_number] => 2310
[dept_descr] => Bakery
)
[1] => Array
(
[dept_number] => 1010
[dept_descr] => Beer
)
)
答案 1 :(得分:0)
您可以使用array_walk:
$array1 = ...; // Your first array
$array2 = ...; // Your second array
function descReplace(&$item) {
$item['dept_descr'] = $array2[$item['dept_number']];
}
array_walk($array1, 'descReplace');
答案 2 :(得分:0)
foreach($array(22) as $key=>$value{
foreach ($array(35) as $target){
if($target['dept_number'] == $key) $target['dept_descr'] = $value.
}
}
名称$ array(22)和$ array(35)不是真实姓名。用正确的数组名称替换它们。
答案 3 :(得分:0)
$arr1 = array(35) {
[0] => array(11) {
'dept_number' ? str•4 '2310'
'dept_descr' ? str•10 'Some Stuff'
}
[1] => array(11) {
'dept_number' ? str•4 '1010'
'dept_descr' ? str•11 'Other Stuff'
}
}
$arr2 = array(22) {
[2310] => str•6 'Bakery'
[1010] => str•4 'Beer'
}
$arr2Keys = array_keys ($arr2);
foreach ($arr1 as $data) {
if(in_array($data['dept_number'], $arr2Keys)) {
$data['dept_descr'] = $arr2[$data['dept_number']];
}
}