2013-05-07 2 views
0

내 문제는 그다지 복잡하지 않지만 아직 해결책을 찾을 수 없습니다. 나는 문자열이 있습니다 :필터 배열 또는 문자열 (일부 단어 제거)

$temp_string = '20938999038,0.5,83888999289,0.5,98883888778,0.9'; 

// Meaning syskey, price, syskey, price, syskey, price 

가격을 제거하고 syskey 만 표시하고 싶습니다.

내 바람직한 결과 : 사전에

'20938999038,83888999289,98883888778' 

감사합니다.

+5

은 왜 자신을 아프게하고 대신 배열을 사용하지? –

+0

'explode()'를 사용하고 array로 작업하십시오. – kapa

+0

문자열을 따옴표로 묶어야합니다. 그렇지 않으면 문자열이 아닙니다. 또한 ['explode'] (http://php.net/explode)와 ['implode'] (http://php.net/implode)에서 올바른 방향으로 당신을 지적해야합니다. –

답변

2

당신이 시도 할 수 :

$string = "20938999038,0.5,83888999289,0.5,98883888778,0.9"; 

$new = array(); 
foreach(explode(",", $string) as $k => $v) { 
    $k % 2 or $new[] = $v; 
} 
echo implode(",", $new); // 20938999038,83888999289,98883888778 
+0

감사 드리겠습니다. –

+0

당신의 솔루션 작업 바바 감사합니다. –

3

당신은 구분

$explode = explode(",", $temp_string); 
unset($explode[1], $explode[3], $explode[5]); 

당신의 캐릭터는 항상이 패턴을 다음과 가정하여 explode 수 있습니다.

+1

감사합니다. 길거나 짧은 입력의 경우 어떻게됩니까? –

+1

같은 패턴을 따르는 경우 계속해서 'unset'명령에 추가 할 수 있습니다. 아마도 가장 좋은 해결책은 @Baba가 추천 한 것을 수행하고 루프에서 'mod'를 기반으로 저장할 값을 선택하는 것입니다. –

관련 문제