编辑两个数组以匹配相同的长度

时间:2019-01-17 10:46:38

标签: php arrays

我有两个PHP数组,$ array1和$ array2:

$array1 = [55, 23, 45, 6, 0, 12];
$array2 = ['Apple', 'Oranges', 'Pears', 'Banana', 'Mango', 'Cherry'];

有没有办法确保$ array1中的0会被删除,并形成一个新的$ array3而省略了0。其次,在此示例中,也删除了$ array2的相应索引值,并创建了一个新的$ array4,其中省略了“ Mango”。

因此,$ array3和$ array4为:

$array3 = [55, 23, 45, 6, 12];
$array4 = ['Apple', 'Oranges', 'Pears', 'Banana', 'Cherry'];

这里重要的一点是,两个新数组的长度相等,并保持它们相应的索引(如果有意义)。

1 个答案:

答案 0 :(得分:0)

您只需要解析第一个数组并检查其中是否有0。如果未将其添加到新数组中,则该值对应于Arrays2的索引。

<?php
$Arrays1 = [55, 23, 45, 6, 0, 12];
$Arrays2 = ['Apple', 'Oranges', 'Pears', 'Banana', 'Mango', 'Cherry'];
$Arrays4 = array();
$search = 55;

foreach($Arrays1 as $index => $arr1_val){
    if($arr1_val !== $search){
        $Arrays4[] = $Arrays2[$index];
    }else{
        unset($Arrays1[$index]);
    }
}
print_r($Arrays4); // Array ( [0] => Oranges [1] => Pears [2] => Banana [3] => Mango [4] => Cherry ) 
print_r($Arrays1); // Array ( [1] => 23 [2] => 45 [3] => 6 [4] => 0 [5] => 12 )