PHP는 큰 따옴표가 포함 된 JSON 문자열의 일부를 제거하는 데 어려움을 겪고 있습니다.

user1503689

다음을 날짜 배열로 나누는 중 ...

[["custom",{"2014":{"7":{"14":true}}}],["custom",{"2014":{"7":{"7":true}}}]]

$availableDatesCodeStripped = substr($availableDatesCode, 1, -2);
// Result - ["custom",{"2014":{"7":{"14":true}}}],["custom",{"2014":{"7":{"7":true}}}

$availableDatesCodeArray = explode("],", $availableDatesCodeStripped);
// Array Element 1 Result - ["custom",{"2014":{"7":{"14":true}}}
// Array Element 2 Result - ["custom",{"2014":{"7":{"7":true}}}

foreach($availableDatesCodeArray as $key => $value) {
    $availableDatesCodeArray[$key] = str_replace(":true}}}", " ", $value);
}

// Array Element 1 Result - ["custom",{"2014":{"7":{"14"
// Array Element 2 Result - ["custom",{"2014":{"7":{"7"

foreach($availableDatesCodeArray as $key=>$value){
    $availableDatesCodeArray[$key] = str_replace("[\"custom\",{\"", "", $value);
}

// Array Element Results - NO CHANGE!

내 목표는 결국 ...

2014-7-14

2014-7-7

그래서 누군가 내가 그것에 대해 더 나은 해결책을 가지고 있다면 말 해주세요.

존 그린

구문 분석을하더라도 토큰 화하거나 정규식을 사용하고 싶을 것입니다. 이런 종류의 문자열 교체는 당신을 죽이고 완전히 유지할 수 없습니다.

즉, 들어오는 날짜 형식은 꽤 미쳤습니다. 해시 테이블에 여러 날짜를 저장하는 방법으로 설계된 것처럼 보이지만 디자인은 다소 이상합니다.

전화를 받았고 답에 맞았지만 Neil의 코드는 작동하지 않습니다. 문제는 그가 'custom'을 키로보고 있으며 실제로 들어오는 배열의 값이라는 것입니다. 아래는 테스트 데이터에 대해 테스트되었습니다.

$availableDatesCode = '[["custom",{"2014":{"7":{"14":true}}}],["custom",{"2014":{"7":{"7":true}}}]]';
$arr = json_decode($availableDatesCode,true);
$dates = array();
foreach ($arr as $dateItem) {
    if ($dateItem[0] == 'custom') // assuming you only want things marked as custom.
    {
        $pDate = array();
        foreach ($dateItem[1] as $year=>$dateMore)
        {
            foreach ($dateMore as $month=>$dateMore2)
            {
                foreach ($dateMore2 as $day=>$ex)
                {
                    $dates[] = implode('-',array($year, $month, $day));
                }
            }
        }
    }
}

print_r($dates);

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관