Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 动态定义数组中的元素_Php_Youtube Api - Fatal编程技术网

Php 动态定义数组中的元素

Php 动态定义数组中的元素,php,youtube-api,Php,Youtube Api,我事先为标题道歉,但我甚至不知道该如何提问 我正在使用youtube提要中的json数组。播放列表和用户上传的提要格式略有不同。为了减少代码量,我想根据提要的类型(播放列表/用户上传)定义元素,并将其插入到我的foreach语句中 用户上载的foreach语句如下所示: foreach ($json_output->data->items as $data) {} foreach ($json_output->data->items->video as $d

我事先为标题道歉,但我甚至不知道该如何提问

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

用户上载的foreach语句如下所示:

foreach ($json_output->data->items as $data)    {}
foreach ($json_output->data->items->video as $data)   {}
对于播放列表,它需要如下所示:

foreach ($json_output->data->items as $data)    {}
foreach ($json_output->data->items->video as $data)   {}
我已经尝试过在变量中预先定义语句,但没有成功地执行以下操作:

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


我能想到的最简单的事情是在feedtype上设置if条件:

$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) {}

$feed已经定义,下面是我所做的

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

谢谢我来试一试。我没把这个问题想清楚,但你的回答让我想到了如何解决它。是的..甚至更短:
foreach($json_output->data->items as$data){if($feed!=1){$data=$data->video;}