欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

数组取值解决思路

程序员文章站 2024-04-05 18:18:54
...
数组取值
Array
(
[iso.3.6.1.4.1.2021.4.1.0] => INTEGER: 0
[iso.3.6.1.4.1.2021.4.2.0] => STRING: "swap"
[iso.3.6.1.4.1.2021.4.3.0] => INTEGER: 16777208
[iso.3.6.1.4.1.2021.4.4.0] => INTEGER: 16777208
[iso.3.6.1.4.1.2021.4.5.0] => INTEGER: 16324040
[iso.3.6.1.4.1.2021.4.6.0] => INTEGER: 4484096

[iso.3.6.1.4.1.2021.9.1.6.1] => INTEGER: 1032088
[iso.3.6.1.4.1.2021.9.1.6.2] => INTEGER: 458942624
[iso.3.6.1.4.1.2021.9.1.6.3] => INTEGER: 8162020
[iso.3.6.1.4.1.2021.9.1.6.4] => INTEGER: 99150
[iso.3.6.1.4.1.2021.9.1.6.5] => INTEGER: 3096336
[iso.3.6.1.4.1.2021.9.1.6.6] => INTEGER: 1032088

)

怎么取键值是iso.3.6.1.4.1.2021.9.1.6.* 的值 就是把前面 键值是iso.3.6.1.4.1.2021.9.1.6的所有值 加起来
------解决方案--------------------
$arr=array(
'iso.3.6.1.4.1.2021.4.1.0' => '0',
'iso.3.6.1.4.1.2021.4.2.0' => 'swap',
'iso.3.6.1.4.1.2021.4.3.0' => '16777208',
'iso.3.6.1.4.1.2021.4.4.0' => '16777208',
'iso.3.6.1.4.1.2021.4.5.0' => '16324040',
'iso.3.6.1.4.1.2021.4.6.0' => '4484096',
'iso.3.6.1.4.1.2021.9.1.6.1' => '1032088',
'iso.3.6.1.4.1.2021.9.1.6.2' => '458942624',
'iso.3.6.1.4.1.2021.9.1.6.3' => '8162020',
'iso.3.6.1.4.1.2021.9.1.6.4' => '99150',
'iso.3.6.1.4.1.2021.9.1.6.5' => '3096336',
'iso.3.6.1.4.1.2021.9.1.6.6' => '1032088'
);
$num=0;
foreach($arr as $k=>$v){
if(version_compare($k, 'iso.3.6.1.4.1.2021.9.1.6.0', '>')){
$num+=$v;
}
}
echo $num;
/*
472364306
*/

------解决方案--------------------
$ar = 你的数组
$res = array();
foreach($ar as $k=>$v){
if(strpos($k, 'iso.3.6.1.4.1.2021.9.1.6') !== false){
$t = explode(': ', $v);
$res[] = $t[1];
}
}
echo array_sum($res);

------解决方案--------------------
$ar = array (
'iso.3.6.1.4.1.2021.4.1.0' => 'INTEGER: 0',
'iso.3.6.1.4.1.2021.4.2.0' => 'STRING: "swap"',
'iso.3.6.1.4.1.2021.4.3.0' => 'INTEGER: 16777208',
'iso.3.6.1.4.1.2021.4.4.0' => 'INTEGER: 16777208',
'iso.3.6.1.4.1.2021.4.5.0' => 'INTEGER: 16324040',
'iso.3.6.1.4.1.2021.4.6.0' => 'INTEGER: 4483856',
'iso.3.6.1.4.1.2021.4.11.0' => 'INTEGER: 21261064',
'iso.3.6.1.4.1.2021.4.12.0' => 'INTEGER: 16000',
'iso.3.6.1.4.1.2021.4.14.0' => 'INTEGER: 72720',
'iso.3.6.1.4.1.2021.4.15.0' => 'INTEGER: 11089928',
'iso.3.6.1.4.1.2021.4.100.0' => 'INTEGER: 0',

'iso.3.6.1.4.1.2021.9.1.6.1' => 'INTEGER: 1032088',
'iso.3.6.1.4.1.2021.9.1.6.2' => 'INTEGER: 458942624',
'iso.3.6.1.4.1.2021.9.1.6.3' => 'INTEGER: 8162020',
'iso.3.6.1.4.1.2021.9.1.6.4' => 'INTEGER: 99150',
'iso.3.6.1.4.1.2021.9.1.6.5' => 'INTEGER: 3096336',
'iso.3.6.1.4.1.2021.9.1.6.6' => 'INTEGER: 1032088',
);

$num = 0;
foreach($ar as $k=>$v){
if($k >= 'iso.3.6.1.4.1.2021.9.1.6.1'){
strtok($v, ':');
$num += strtok('');
}
}
echo $num;
数组取值解决思路

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频