2015-04-10 4 views
0

У меня есть строка, которая в основном состоит из строк с разделителями JSon как (ну не прошу мне, почему. Это то, что я получаю)Заменить каждый элемент взрывается

{ foo: bar, baz: 1234 } || { foo: huh, baz: 9090 } || .. 

Так что я взрываюсь эти строки и расшифровать их. Тогда я петля над ними, создать новый объект из них и передать его в новый массив:

$toons = explode("||", $application->toons); 
for($i=0;$i<count($toons);$i++) { 
    $t[$i] = new WowApi(json_decode($toons[$i], true)); 
} 

Ну мне действительно не нравится этот код. Я хотел бы сделать это уже взорваться.

питона эквивалент будет что-то вроде

toons = app_toons.split("||") 
t = [api(toon) for toon in app_toons] 

что путь более ценным в смысле читаемости - на мой взгляд

Так что мой вопрос: Есть ли более элегантный способ создать свой массив ?

ответ

0
  1. Уверены ли вы, что "||" не будет происходить внутри частей json? Если нет - не взорвать строку наивно.
  2. for(;;) петля может быть заменена на foreach петля. Но если вы хотите глубже, вы можете использовать функцию array_walk. В PHP-документе есть хорошие примеры.
Смежные вопросы