2012-11-24 7 views
1
NOTE : This is for a PHP script ! 

그래서 저는 프로그램 작업을하고 있었지만 지금은 데이터를 올바르게 분할 할 수 없기 때문에 지금 막 갇혀 있습니다. 내가 배열이나 JSON 형식 (바람직 JSON)에 해당 정보를 추가해야문자열에서 데이터를 가져 와서 PHP의 JSON으로 반환하십시오.

50.0.1 581 50.0.2 545 50.0.3 541 50.0.4 18 50.0.5 2 50.0.6 33 50.0.7 1 [...] 

:

난 그냥 같은 번호 목록을 가지고있다.

주요 데이터는 다음과 같습니다 (우리는 그룹을 선택합니다). 50.0.1 581 기본적으로 58.01을 50.0.1에서 JSON/ARRAY로 추가 한 다음 다음 그룹으로 이동합니다 (이 경우에는 50.0). 0.2 545

예 JSON (등)

{"result": { 
    "50.0.1": "581", 
    "50.0.2": "545" 
}} 

참고.. [0-9] {2} [0-9] : 첫 번째 값과 동일한 포맷을 가질 것이다 항상 0-9] (예 : 50.0.1)

그러나 두 번째 값은 1에서 4 자리까지 가능합니다. [0-9] {1,4}.

내가 분명히하지 않으면 유감입니다. 설명하기가 어렵습니다. 필요하다면 더 많은 예제를 추가 할 것입니다!

Thank you very much ! 

답변

0

내 작업 해결책 : /([h/D) \ t (\ d) /. 3 개의 배열을 출력합니다. 간단하게 두 번째와 세 번째를 결합하고 내가 원하는 것을 얻었습니다.

2

은 공백 (예 :.

$arr = explode(' ', $your_string); 

는 요소의 각 쌍을 사용하여 새 배열을 구축 : 그 "키"값의 중복 인 경우이 아마 일을 쓰레기 것

$newarr = array(); 
for ($i = 0; $i < count($arr); $i += 2) { // note the += 2 
    $newarr[$arr[$i]] = $arr[$i+1]; 
} 
echo json_encode($newarr); 

메모를.

+0

지금까지 잘 작동하는 것 같습니다. 다른 예제로 테스트 해보고 여기에 다시 한 번 더 의견을 추가하거나 승인 된 답변으로 작성하겠습니다. 고마워요! – virusbogdan

+0

별도의 요소로 추가하지 않았습니다 : http://puu.sh/1tLaM. 그 대신 하나의 큰 요소 일 뿐이며 null – virusbogdan

+0

은 탭 모양이며 캐리지 리턴이 구분됩니다. 원래 게시물에서 언급했다면 좋았을 것입니다. 그래서 기본적으로'\ r'에서 폭발하고'\ t'에있는 각각의 비트를 폭발 시키거나 기본적으로 csv 데이터 인 것처럼 보이기 때문에 원래 파일의 fgetcsv를 루프에 사용하십시오. –

0

또 다른 방법은 explode() 다음에 array_chunk()을 사용한 다음 각 쌍에 대해 item[0]item[1]으로 값을 액세스하는 것입니다.

관련 문제