我试图创建一个“数组收集器”来从一个巨大的数组中检索数据,而不需要执行foreach循环,以及那些时间之类的东西。我不知道从哪里开始,所以我想知道是否有人知道是否有一个包已经有我的目的或我需要定制的东西。有人可以帮我解决这个问题吗?
我有一个数组(参见示例1),如果我插入一个特定的数组(参见示例2),我想检索我选择的项目。有关输出,请参阅示例3.有人可以让我开始或创建类似的东西吗?如果有人创造了这个,那么生成一个github包,并为作者提供所有信用,因为我认为这可以帮助很多人!
我熟悉Laravel Collections,但他们不提供我想要的方法。
R_Index Chr Start End Ref Alt Func.IDP.refGene Gene.IDP.refGene GeneDetail.IDP.refGene
4629 chr10 78944590 78944590 G A intergenic NONE;KCNMA1 dist=NONE;dist=451371
4630 chr10 79396463 79396463 C T intronic KCNMA1 .
4631 chr10 79397777 79397777 C - exonic KCNMA1;X1X .
4633 chr10 89397777 89397777 - GAA exonic NONE;X1X;KCNMA1 .
awk -F'\t' 'NR==FNR{a[$0];next} FNR==1{print} {x=$8; sub(/;.*/,"",x)} x in a{$1=++c; print}' gene file > out
$array = [
'title' => 'Product Title',
'description' => 'Lorem ipsum item text ',
'variants' => [
0 => [
'title' => 'Variant title 1',
'description' => 'Lorem variant description',
'price' => [
'price' => 10,
'price_old' => 14
]
],
1 => [
'title' => 'Variant title 2',
'description' => 'Lorem variant description',
'price' => [
'price' => 10,
'price_old' => 14
],
'colors' => [
0 => 'Red',
1 => 'Blue'
]
]
],
];
答案 0 :(得分:0)
您最好的解决方案是实现RecursiveArrayIterator类 http://php.net/manual/en/class.recursivearrayiterator.php
答案 1 :(得分:0)
这样的事情应该可以胜任。彼此嵌套有2个循环。第一个循环只迭代count($ get)次,第二个循环只迭代元素的深度。在你给出的例子中,总共只有8个循环。你可以添加一些错误处理,如果!empty()等我通过引用(&)设置数组,以防止数据在内存中重复,以防你获得大数据集。
function getValues(&$array, $get) {
$outputs = [];
foreach ($get as $query) {
$query = explode('.', $get);
$container &= $array;
foreach ($query as $elem) {
$container &= $comtainer[$elem];
}
}
}