从PHP JSON对象中删除数组

时间:2016-09-28 18:07:14

标签: php arrays json

所以有一些背景信息是我正在创建一个网络应用程序,我有50个阵列,我目前正在使用我从API获得的内容,我已经创建了一个脚本来查找我不需要的数组可以调用它们#34;坏数组"但问题是我不确定如何使用我用来搜索它们的方法来过滤这些数组

我正在使用此脚本搜索它们

$tagItems = [];
foreach($tags['items'] as $item) {
    if (!$item['snippet']['tags'] || !is_array($item['snippet']['tags'])) {
        continue;
    }
    foreach($item['snippet']['tags'] as $tag) {
        $tag = strtolower($tag);
        if (!isset($tagItems[$tag])) {
            $tagItems[$tag] = 0;
        }
        $tagItems[$tag]++;
    }
}

但是,让我说我不希望它包含第8个数组和第15个数组

$tags['items'][8]['snippet']['tags'];
$tags['items'][15]['snippet']['tags'];

我希望从原始$tags数组中删除这些内容。我怎样才能做到这一点?

编辑:这需要是动态的。我不知道是否会有需要移除的45/50阵列或只有2/50。需要删除的数组可以被称为$index

我有一个脚本,用于确定需要删除的数组

$i = 0;
while ($i <= 50) {
    $x = 0;
    while ($x <= 50) {
        if ($tags['items'][$i]['snippet']['channelId'] == $tags['items'][$x]['snippet']['channelId']) {
            if ($x < $i) {
                break;
            } else {
                echo $x.", ";
                break;
            }
        }
        $x++;
    }
    $i++;
}

我要稍微编辑一下,以提供一些可能有用的额外信息。我的总体目标是使用YouTube API删除多个频道ID出现多次的第一批标记。我使用的脚本可以找到需要删除网址的所有数组编号。

1 个答案:

答案 0 :(得分:3)

您可以检查数组键

$tagItems = [];
$toRemove = array(8,15);
foreach($tags['items'] as $key => $item) {
    if(in_array($key,$toRemove)){
        continue;
    }
    if (!$item['snippet']['tags'] || !is_array($item['snippet']['tags'])) {
        continue;
    }
    foreach($item['snippet']['tags'] as $tag) {
        $tag = strtolower($tag);
        if (!isset($tagItems[$tag])) {
            $tagItems[$tag] = 0;
        }
        $tagItems[$tag]++;
    }
}