php - 数组在foreach中不断重复
问题描述
我有一个数组在它的值中保存字符串,我在每个值中发现下划线将其破坏并将其插入到新数组中,它做得很好,但仅对于第二个数组中的第一个数组它也重复第一个数组。
例如
$someArraVal[] = 'abc_xyz__vr1_vr2';
$someArraVal[] = 'emf_ccc__vr2_vr3';
首先,我在双下划线之后得到所有内容,然后用下划线爆炸它们并尝试拥有如下所示的数组
Array
(
[0] => Array
(
[0] => vr1
[1] => vr2
)
[1] => Array
(
[2] => vr3
[3] => vr4
)
)
但我得到
Array
(
[0] => Array
(
[0] => vr1
[1] => vr2
)
[1] => Array
(
[0] => vr1
[1] => vr2
[2] => vr3
[3] => vr4
)
)
代码
$someArraVal[] = 'abc_xyz__vr1_vr2';
$someArraVal[] = 'emf_ccc__vr3_vr4';
$arr1 = [];
$arr2 = [];
$xmx = [];
foreach ($someArraVal as $key => $value) {
$afterunderscore = substr($value, strpos($value, "__") + 1);
// $addPipe = str_replace("_","|",$afterunderscore);
$abc = substr($afterunderscore, 1);
$arr1 = explode('_',$abc);
foreach ($arr1 as $k => $v) {
$arr2[] = $v;
}
$xmx[] = $arr2;
}
printR($xmx);
解决方案
您需要$arr2
在 foreach 循环开始时清空数组。
.
.
.
foreach ($someArraVal as $key => $value) {
$arr2 = []; //Empty the $arr2 at begining of the loop
.
.
.
}
推荐阅读
- git - git:无法挑选范围
- javascript - 无法读取调用时未定义的属性 X
- oracle - 在 Oracle 中使用 CASE 表达式
- python - 是否有与 Python 的 pandas.merge_asof 等效的 R?
- visual-studio - 如何在 azure devops 中运行 Visual Studio 构建
- ios - 如何通过在 swift 中实现观察者从 Firebase 实时数据库中获取嵌套数据
- javascript - Javascript 中的 getMonth() 格式为 dd/mm/yyyy
- python-3.x - 详细参数在 PMML 管道中不起作用
- .net - dotnet dev-certs https --trust not work 并返回此错误“创建 HTTPS 开发人员证书时出错。”
- react-native - react-native-modal 内的导航