2015-02-18 3 views
0

Я извлекаю данные из API, и каждый раз в какое-то время значение возвращается в одно из полей, которые я захватываю, в которых есть запятая, что вызывает мои результаты будут смещены на 1 каждый раз, когда это произойдет.escaping ограничитель PHP-массива из строки

после того, как я получил результаты API, я положил его в $answerSearch, затем я json_decode.

$json = json_decode($answerSearch, true); 
foreach ($json['Result']['a']['b'] as $i) { 

    $y = "{$i['number']},{$i['Type']},{$i['c']},{$i['d']},{$i['e']}"; 
    $x = explode("," , $y); 
    array_push($output, $x); 
} 

Одно из этих значений {$i['number']} может быть "1234,123", и потому что я использую запятую в качестве разделителя, это вызывает весь массив завинчивать.

Как сообщить PHP, что , в середине этой строки является частью строки, а не делиметром?

Update

Я не могу просто изменить $x = explode("," , $y); использовать другой разделитель, потому что ,, /, ; и т.д. все они используются в реальных строк, которые возвращаются, я просто использовал , в качестве примера. не

+0

почему бы не просто изменить свой разделитель чем-то апи обыкновение возвращать ~ ^? –

+1

Этот код совершенно бессмыслен. '$ i' уже является массивом, поэтому зачем преобразовать этот массив в строку, просто чтобы взорвать его обратно в массив? Если вы делаете это, чтобы копировать только нужные вам ключи, есть лучшие способы сделать это ... –

+0

actully skip y и x и писать непосредственно в массив –

ответ

1

Существует не для преобразования из массива в строку обратно в массив, чтобы добавить выбранные значения в $ использования выходного массива:

$output[]=array({$i['number']},{$i['Type']},{$i['c']},{$i['d']},{$i['e']}); 
Смежные вопросы