экранирование массива PHP из строки

0

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

после того, как я получил результаты 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 , в середине этой строки является частью строки и не разделители?

Обновить

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

  • 0
    почему бы просто не изменить свой разделитель на то, что API не вернет ~ ^?
  • 1
    Этот код совершенно бессмысленный. $i - это уже массив, так зачем преобразовывать этот массив в строку, просто чтобы взорвать его обратно в массив? Если вы делаете это, чтобы скопировать только те ключи, которые вам нужны, есть лучшие способы сделать это ...
Показать ещё 10 комментариев
Теги:

1 ответ

1
Лучший ответ

Нет необходимости в преобразовании из массива в строку обратно в массив, чтобы добавить выбранные значения в массив $ output array:

$output[]=array({$i['number']},{$i['Type']},{$i['c']},{$i['d']},{$i['e']});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню