我遇到了问题,我不确定如何修复它。
这与我之前所做的完全不同。
我得到了这个数组:
array (
'DayTime_s' => '12:38',
'MATCHTIMEOUT_f' => '120.000000',
'MOD0_s' => '746138492',
'MOD1_s' => '841244723',
'MOD2_s' => '741155722',
'MOD3_s' => '748747466',
'ModId_l' => '0',
'Networking_i' => '1',
'NUMOPENPUBCONN' => '40',
)
数组的大小因阵列而异。 我需要的是一个新数组,包含上面的所有“MOD?_s”条目(带有值)。但是“mods”的数量因阵列而异。数字总是递增1,从0开始(0,1,2,3,4等)
我该如何处理这项任务?
,肯尼斯
答案 0 :(得分:4)
$your_array = array (
'DayTime_s' => '12:38',
'MATCHTIMEOUT_f' => '120.000000',
'MOD0_s' => '746138492',
'MOD1_s' => '841244723',
'MOD2_s' => '741155722',
'MOD3_s' => '748747466',
'ModId_l' => '0',
'Networking_i' => '1',
'NUMOPENPUBCONN' => '40',
);
$new_array = [];
foreach($your_array as $key => $val)
if(preg_match('/MOD\d+_s/ui', $key))
$new_array[$key] = $val;
print_r($new_array);
答案 1 :(得分:0)
延迟回答,但您也可以使用array_keys()和unset():
foreach( array_keys($the_array) as $key)
{
if (!preg_match('/MOD\d+/s', $key)) {
unset($the_array[$key]);
}
}
print_r($test_array);
<强>输出:强>
Array
(
[MOD0_s] => 746138492
[MOD1_s] => 841244723
[MOD2_s] => 741155722
[MOD3_s] => 748747466
)