【发布时间】:2022-01-20 08:01:27
【问题描述】:
我有一个很大的列表具有相似的标题,我将这两个分解为数组。我想通过拼接在同一标题下插入数据并获得一个大数组示例:
Array1 ( Array2( Result Array(
[0]Heading1 [0]Heading1 [0]Heading1 )
[1]data1 [1]data1 [1]data1
[2]data1 [2]Heading2 [2]data1
[3]data1 [3]data2 [3]data1
[4]Heading2 [4]data2 [4]data1
[5]data2 [5]data2 ) [5]Heading2
[6]data2 [6]data2
[7]data2 [7]data2
[8]data2 [8]data2
[9]data2 [9]data2
) [10]data2
[11]data2
[12]data2
[13]data2 )
现在我已经匹配了标题值并希望在匹配值之间获取索引范围这是我尝试过的:
<?php
$original = array( '1','f','g','h','2','m','n','o','p', '3', '4', '5' );
$Test = array('1','a','b','c','d','e','2','i','j','k','l');
foreach ($original as $key1 => $value1) {
foreach ($Test as $key2 => $value2) {
if($value1 == $value2 ){
if(isset($firsttime)){}else{$firsttime = ($key1+1);}
if(isset($secondtime)){}else{$secondtime = ($key1-1);}
}
}
}
foreach(range(firsttime,secondtime) as $key){
echo $original[$key];
}
echo $firsttime.'<br>';
echo $secondtime.'<br>';
?>
第一个值在索引 0 处匹配,所以我得到值 1 和 -1 我想要的值是 1和3
【问题讨论】:
-
数据的原始来源是什么,这看起来很复杂,通过构建不同的起始数组集可能更容易解决。
-
google sheet data 我已经用 , 分隔符加入了列,并将它分解成一个数组。工作表:docs.google.com/spreadsheets/d/…
-
第二个数组中是否可以包含第一个数组中没有的标题?如果是这样,您究竟想如何处理这些?丢弃它们,在最后附加它们?
-
如果第二个数组中的所有标题都保证在第一个数组中,那么我会简单地将数据分组,首先使用标题内容作为键(假设标题是唯一的),然后再次展平生成的数组。示例:3v4l.org/4v7rV 我在这里使用
is_numeric来“识别”示例数据中的标题,您需要将其替换为适合您实际数据的任何内容。第一个数组的标题被插入到辅助数组中,第二个数组的标题不被插入(因为我们不希望它们在结果中重复。) -
第二个数组中的值保证在第一个数组中我试试这个acual数据中的标题是城市名称