2015-01-23 4 views
-1

문자열과 배열을 JSON으로 결합하려고합니다. 지금까지 성공하지 못했습니다.문자열과 배열을 JSON으로 결합하십시오.

<?php 
$url = ‘example.com’; 
$data = file_get_contents($url); 
$regex = '/list-animal-id">(.+?)</'; 
$input = ‘testtext'; 
preg_match_all($regex,$data, $match); 
    //var_dump($match); 
    //echo json_encode($match[1]); 
$json = array($input, $match[1]); 
$json_data = json_encode($json); 
echo $json_data; 

?> 

$ 일치는 예를 들어, 배열을 다시 온다 : 여기

는 PHP 코드

위는 문자열의 인스턴스 생성
"22425229","22493325","22596308","24635614","22202322" 

:

["testtext",["22425229","22493325","22596308"...... 

다음과 같이 만들고 싶습니다.

"testtext":"22425229", "testtext":"22425230" 

감사합니다,

+1

을 당신은 구문을 일으키는 나쁜 따옴표를 오류. 이걸로 무엇을 편집하고 있습니까? –

+0

터미널을 통한 편집자 – magicJerk

답변

0

내 솔루션은 잘못하고 당신이 할 찾고있는 것은 아니다

+0

답장을 보내 주셔서 감사합니다. 작동하지 않을 수 있습니다. 작동 오류 일 가능성이 큽니다. :) – magicJerk

+0

ok ... "preg_match_all"함수를 포함한 원본 코드가 필요합니다 ... – bohrsty

+0

@bohrsty, 이것은 결코 작동하지 않습니다. 내 대답에 쓴 것처럼 배열이나 개체를 PHP 또는 JavaScript에서 여러 번 반복하는 동일한 키로 사용할 수 없습니다. 특정 키가있는 마지막 항목에 도달 할 때까지 해당 키 항목의 값을 덮어 씁니다. 출력은 항상'{ "testtext": "22202322"}'(마지막 값을 가진 "testtext")입니다. 결과를 보려면 @ magicJerk의 코드로 답을보십시오. – Jim

1

... 최적의 솔루션이 짐의의 answere에서 찾을 수 있습니다 ... 다른 사람을 혼동 여기있어 안 가능한. [ "testtext":"22425229", "testtext":"22425230" ]은 모든 키가 "testtext"인 배열을 사용합니다. 동일한 키가 반복되는 배열이나 객체를 가질 수 없습니다.

<?php 
$url = 'example.com'; 
$data = file_get_contents($url); 
$regex = '/list-animal-id">(.+?)</'; 
$input = 'testtext'; 
preg_match_all($regex,$data, $match); 
    //var_dump($match); 
    //echo json_encode($match[1]); 

function outputArray($value) { 
    global $input; 
    return array($input => $value); 
} 

$json = array_map('outputArray', $match); 
$json_data = json_encode($json); 
echo $json_data; 

?> 

출력은 다음과 같습니다 : 당신이 할 수있는 일

는 각 연관 배열이 (JSON에서 개체)는 배열의 배열 만드는 것입니다 [{"testtext":"22425229"},{"testtext":"22493325"},{"testtext":"22596308"},{"testtext":"24635614"},{"testtext":"22202322"}]

+0

감사합니다 짐! 잘 작동합니다. 그래서 나는 짐작하기를, 나는 PHP에서 매우 익숙하다. 나는 무거운 짐을 짚는 것이 json 전에해야한다는 것이다. – magicJerk

+0

문제 없습니다. 다행히 도울 수있어. – Jim

관련 문제