我有2个数组
数组 1:数组 ( [0] => Merc [1] => # [2] => BM [3] => & [4] => Lotus )
数组 2:数组 ( [0] => 6740 [1] => 4565 [2] => 3423 )
目标是将两个数组组合起来并最终得到:
$result = ['Merc' => 6740,'BM' => 4565,'Lotus' => 3423];
我知道,已经有相当多的关于这方面的指导,并且我已经阅读过它,但数组操作对我来说是新的,不知怎的,我就是无法理解逻辑和语法。
请有经验的人告诉我哪里出错了。
我已经尝试过:
...
//// lets echo the arrays to make sure they are correct
print_r($car);?><br><?php
print_r($part);?><br><?php
//// lets combine the 2 arrays to get an associative array
$result = [];
for($i = 0; $i < count($car); $i++){
if (($car[$i] == "&")||($car[$i] == "#")){
$i = ($i + 1);
}
foreach($car as $car) {
foreach($part as $part) {
$result[] = array(
$car => $part,
);
}
}
}
print_r($result);
其输出是:
Array ( [0] => Array ( [Merc] => 6740 ) [1] => Array ( [BM] => 4565 ) [2] => Array ( [Lotus] => 3423 ))
要删除的特殊字符只能是 #
或 &
最佳答案
过滤掉不需要的元素并将它们组合起来。
代码:(Demo)
$cars=['Merc','#','BM','&','Lotus'];
$parts=[6740,4565,3423];
$cars=array_diff($cars,['#','&']);
var_export(array_combine($cars,$parts));
输出:
array (
'Merc' => 6740,
'BM' => 4565,
'Lotus' => 3423,
)
附:您还可以使用 ctype_alpha() 进行过滤,如下所示:( Demo )
$cars=array_filter($cars,'ctype_alpha'); // only retain elements that are fully comprised of letters
关于php - 如何合并两个不同长度的数组,同时删除一个数组的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48899942/