我是 php 新手,需要多维数组方面的帮助。具体来说,我希望 array1 是“值”,而 array2 是“键”。
数组 1:
Array
(
[0] => Array
(
[0] => 100
[1] => 2020-01-02
[2] => 75
)
[1] => Array
(
[0] => 50
[1] => 2020-01-03
[2] => 35
)
[2] => Array
(
[0] => 200
[1] => 2020-01-05
[2] => 165
)
)
数组 2:
Array
(
[0] => Array
(
[0] => Price
[1] => Date
[2] => PriceNet
)
[1] => Array
(
[0] => Price
[1] => Date
[2] => PriceNet
)
[2] => Array
(
[0] => Price
[1] => Date
[2] => PriceNet
)
)
想要的结果:
Array
(
[0] => Array
(
[Price] => 100
[Date] => 2020-01-02
[PriceNet] => 75
)
[1] => Array
(
[Price] => 50
[Date] => 2020-01-03
[PriceNet] => 35
)
[2] => Array
(
[Price] => 200
[Date] => 2020-01-05
[PriceNet] => 165
)
)
我研究了“array_merge”和“array_combine”,但我是新手,想找出解决问题的聪明方法。
非常感谢任何帮助?
答案 0 :(得分:2)
您可以使用 array_map
和 array_combine
的力量:
$array3 = array_map("array_combine", $array2, $array1);
答案 1 :(得分:0)
写得很快,但没有经过很好的测试;) 它让你满意吗?
当然这段代码有点硬编码;)
<?php
$array1 = Array
(
0 => Array
(
0 => 100,
1 => '2020-01-02',
2 => 75
),
1 => Array
(
0 => 50,
1 => '2020-01-03',
2 => 35
),
2 => Array
(
0 => 200,
1 => '2020-01-05',
2 => 165,
)
);
$array2 = Array
(
0 => Array
(
0 => 'Price',
1 => 'Date',
2 => 'PriceNet'
),
1 => Array
(
0 => 'Price',
1 => 'Date',
2 => 'PriceNet'
),
2 => Array
(
0 => 'Price',
1 => 'Date',
2 => 'PriceNet'
)
);
$array3 = [];
foreach($array1 as $key => $value) {
$array3[$key] = [
$array2[$key][0] => $array1[$key][0],
$array2[$key][1] => $array1[$key][1],
$array2[$key][2] => $array1[$key][2],
];
}
print_r($array3);
答案 2 :(得分:0)
您可以使用 foreach 或 for 循环。但是我已经使用 foreach 循环为您实现了一个解决方案。
$arr1 = [
[100, '2020-01-02', 75],
[50, '2020-01-03', 35],
[100, '2020-01-05', 165],
];
$arr2 = [
['price', 'date', 'priceNet'],
['price', 'date', 'priceNet'],
['price', 'date', 'priceNet'],
];
$finalResult = [];
$columns = reset($arr2);
foreach ($arr1 as $values) {
$result = [];
foreach ($values as $key => $value) {
$result[$columns[$key]] = $value;
}
$finalResult [] = $result;
}
print_r($finalResult);
输出如下: