首页 > 解决方案 > 编辑两个数组以匹配相同的长度

问题描述

我有两个 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'];

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

标签: phparrays

解决方案


您只需要解析第一个数组并检查其中是否有 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 )

推荐阅读