php - 编辑两个数组以匹配相同的长度
问题描述
我有两个 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'];
这里重要的一点是,两个新数组的长度相等并保持它们对应的索引,如果这有意义的话。
解决方案
您只需要解析第一个数组并检查其中是否有 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 )
推荐阅读
- git - PowerShell 一行命令显示本地 git 存储库的名称
- c++ - 如何静态链接 allegro5 (Linux, G++)?
- scala - 解压时如何在 Scala 中压缩多个文件而不创建文件夹
- c - 为什么这个联盟以与预期不同的方式组织数据?
- python - 在 pyinstaller 中添加 pip 库以为我的脚本创建 exe 文件
- python - Python:列出驱动器、子目录中的文件并按扩展名排序
- git - I already have 1 code commit account set up, how do I set up a second code commit account? (I'm getting a clone error on the second account)
- python - 无法打开在 mpi4py 中创建的 zip 档案
- google-apps-marketplace - 无法将屏幕截图上传到 G Suite Marketplace
- firebase - 使用 Geofire 查询时出现 getter 错误