2017-04-23 3 views
1

私は問題があり、それを修正する方法がわかりません。PHPは、新しい配列を作るために配列内のエントリを取得する

これまでに行ったこととは全く異なります。

私はこの配列を得た:

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', 
) 

配列のサイズは、次の1つの配列と異なっています。 私が必要とするのは、上記のすべての "MOD?_"エントリ(値付き)を含む新しい配列です。しかし、 "モッズ"の数はアレイごとに異なります。 0から始まる数字(0,1,2,3,4など)

このタスクはどのように処理すればよいですか?

、ケネス

答えて

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); 
+0

それは速かった。既にそれをテストし、それは完璧に動作します!どうもありがとう :) –

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 
) 
関連する問題