Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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 JSON对象中删除数组_Php_Arrays_Json - Fatal编程技术网

从PHP JSON对象中删除数组

从PHP JSON对象中删除数组,php,arrays,json,Php,Arrays,Json,所以有一点背景信息是,我正在创建一个web应用程序,我有50个数组,我目前正在使用从API获得的数组,我创建了一个脚本来查找我不需要的数组,让我们称它们为“坏数组”,但问题是我不确定如何使用搜索这些数组的方法过滤掉这些数组 我正在用这个脚本搜索它们 $tagItems = []; foreach($tags['items'] as $item) { if (!$item['snippet']['tags'] || !is_array($item['snippet']['tags']))

所以有一点背景信息是,我正在创建一个web应用程序,我有50个数组,我目前正在使用从API获得的数组,我创建了一个脚本来查找我不需要的数组,让我们称它们为“坏数组”,但问题是我不确定如何使用搜索这些数组的方法过滤掉这些数组

我正在用这个脚本搜索它们

$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++;
}
$i=0;

而($i您可以检查数组键

$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]++;
    }
}

您可以检查数组键

$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]++;
    }
}

我的原始问题中没有包含这一点,我现在将对其进行编辑,因为我没有说得很清楚。我如何动态地执行此操作,我不知道它是数组8还是数组15,可能只有两个数组,可能有30个数组需要删除,只是一个小消息,您可以将这两个
if(){}
s,导致调用
continue
到单个
if(){}
但总的来说,你的答案似乎是正确的。@MonkeyZeus我这样做是为了更容易看到我做了什么,但是的,它当然可以加在一起。我做了一些测试,但它不起作用,我不确定为什么它不起作用,但它不起作用-我设置为移动到
$toRemove=array(8,12,15,17,18,21,28,29,33,42)
但是这些数组没有被删除,也没有给出错误-加上这个,我不确定$key变量是什么。这个答案实际上并没有从
$tags
中删除任何条目,它只是没有对这些条目执行额外的逻辑。这与“我如何才能阻止foreach“foreach”处理这段数据”,而不是下面的请求“我有没有办法删除它,这样它就不存在了”(请求的两部分相互矛盾)我的原始问题中没有包含这一点,我现在将对其进行编辑,因为我没有说得很清楚。我如何动态地执行此操作,我不知道它是数组8还是数组15,可能只有两个数组,可能有30个数组需要删除,只是一个小消息,您可以将这两个
if(){}
s,导致调用
continue
到单个
if(){}
但总的来说,你的答案似乎是正确的。@MonkeyZeus我这样做是为了更容易看到我做了什么,但是的,它当然可以加在一起。我做了一些测试,但它不起作用,我不确定为什么它不起作用,但它不起作用-我设置为移动到
$toRemove=array(8,12,15,17,18,21,28,29,33,42)
但是这些数组没有被删除,也没有给出错误-加上这个,我不确定$key变量是什么。这个答案实际上并没有从
$tags
中删除任何条目,它只是没有对这些条目执行附加逻辑。这与我怎样才能阻止foreach“foreach”处理这段数据,而不是下面的请求“我有没有办法删除它,这样它就不存在了”(请求的两部分相互矛盾)我有一个脚本,可以检测哪些阵列需要被删除——我现在就把它添加到我的原始帖子上。如果今天是8/15,明天是2/50,那么知道这一点的标准是什么?是太阳的相对距离与谷歌的股价相比吗?在冬天的一天,我们在纽约中央公园只收到1.235英寸的雪?我有一个答案检测哪些阵列需要删除的脚本-我现在将在我的原始帖子中添加它如果今天是8/15,明天是2/50,那么知道这一点的标准是什么?是太阳的相对距离与谷歌在冬季的股价相比吗?当时我们在纽约中央公园只收到1.235英寸的积雪?