2013-03-23 64 views
0

我为事先标题道歉,但甚至不知道如何提出问题。动态定义数组中的元素

我正在使用来自youtube feed的json数组。播放列表和用户上传的供稿格式稍有不同。为了减少代码数量,我想根据提要类型(播放列表/用户上传)定义元素,并将其插入到我的foreach语句中。

用户上传的foreach语句是这样的:

foreach ($json_output->data->items as $data) {} 

和它需要寻找这样的播放列表:

foreach ($json_output->data->items->video as $data) {} 

我试图在一个变量定义语句事先和做下面的事情没有运气:

foreach ($json_output.$feedtype as $data) {} 

foreach ($json_output + $feedtype as $data) {} 

回答

1

我能想到的最简单的事情就是让一个if条件上的FeedType:

$feedtype = 'uploads'; // or playlist 

if ($feedtype == 'uploads') { 
    $array = $json_output->data->items; 
} 
else if ($feedtype == 'playlist') { 
    $array = $json_output->data->items->video; 
} 

foreach ($array as $data) {} 
+0

谢谢。我会给你一个镜头。 – TDave00 2013-03-23 01:20:11

+0

我并没有真正认为这个问题,但你的回答给了我一个想法如何解决它。 – TDave00 2013-03-23 01:39:40

0

$饲料已经定义,所以这里是我做的。

foreach ($json_output->data->items as $feed_data){ 
if ($feed == 1) {$data = $feed_data;} 
else {$data = $feed_data->video;} 
+1

yes..or甚至更短:'foreach($ json_output-> data-> items as $ data){if($ feed!= 1){$ data = $ data-> video;}}'' – bitWorking 2013-03-23 01:46:31