假设我有这个数组(真正的数组确实更大):
Array
(
[CD000000001] => Array
(
[0] => Array
(
[periodo] => 10/2010
[incasso] => 15000.00
[spesa] => 0.00
)
[1] => Array
(
[periodo] => 03/2013
[incasso] => 0.00
[spesa] => 280.00
)
)
[CD000000002] => Array
(
[0] => Array
(
[periodo] => 11/2010
[incasso] => 327199.83
[spesa] => 0.00
)
[1] => Array
(
[periodo] => 03/2013
[incasso] => 0.00
[spesa] => 3194.90
)
)
)
我试图获得与数组的第一层和第二层的[periodo]相匹配的[incasso]和[spesa]的值。因此,例如,我寻找CD000000002,如果找到它,则寻找03/2013。如果找到它,我想返回[incasso]和[spesa]值。CD000000002和[periodo]都是从for循环构建的,因此我将测试现有值和不存在值。实际上,在我看来,我无法正确访问第二个数组,而且我也不明白为什么。这是我的实际代码:(示例中的$ credito是CD000000002):
if(isset($flussi[$credito])){
//if I find CD000000002
$key = array_search($periodo,$flussi[$credito]);
//return the key of the second level array that have the value 03/2013
if($key){
$incasso = $flussi[$credito][$key]['incasso'];
}else{
$incasso = 0.00;
//return the value of [incasso] corresponding to that key
}else{
$incasso = '0.00';
}
unset($key);
我究竟做错了什么???我不想使用foreach循环,但我想搜索正确寻址数组索引的确切值。重复问题中提到的功能对我来说是众所周知的,但在这种情况下不适用于性能。数组大小太大,因此至少每次运行脚本时都不能进行foreach 5.000次
为了$key = array_search($periodo,$flussi[$credito]);
找到的值periodo
,您需要使用数字键更改数组
Array
(
[CD000000001] => Array
(
[0] => Array
(
[periodo] => 10/2010
[incasso] => 15000.00
[spesa] => 0.00
)
[1] => Array
(
[periodo] => 03/2013
[incasso] => 0.00
[spesa] => 280.00
)
)
...
到periodo
值是键的数组
Array
(
[CD000000001] => Array
(
[10/2010] => Array
(
[periodo] => 10/2010
[incasso] => 15000.00
[spesa] => 0.00
)
[03/2013] => Array
(
[periodo] => 03/2013
[incasso] => 0.00
[spesa] => 280.00
)
)
...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句