替换每个爆炸项目

时间:2015-04-10 13:01:39

标签: php arrays explode

我有一个字符串,基本上由分隔的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));
}

我真的不喜欢这段代码。我想在爆炸中做到这一点。

python等价物就像

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

在可读性方面更有价值 - 在我看来

所以我的问题是:是否有更优雅的方式来创建我的阵列?

1 个答案:

答案 0 :(得分:0)

  1. 您确定json部分内部永远不会发生"||"序列吗?如果不 - 不要天真地爆炸。
  2. for(;;)循环可以由foreach循环替换。但是如果你想要更深入,你可以使用array_walk功能。 PHP doc有很好的例子。