2017-04-23 1 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', 
) 

배열의 크기는 하나 개의 배열에서 다음에 다른 :

나는이 배열을 얻었다. 내가 필요로하는 것은 모든 "MOD? _s"항목 (값 포함)을 포함하는 새로운 배열입니다. 그러나 "개조 물"의 수는 배열마다 다릅니다. 숫자는 항상 0부터 시작하여 1 씩 증가합니다 (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 
) 
관련 문제