从PHP JSON对象中删除数组
所以有一点背景信息是,我正在创建一个web应用程序,我有50个数组,我目前正在使用从API获得的数组,我创建了一个脚本来查找我不需要的数组,让我们称它们为“坏数组”,但问题是我不确定如何使用搜索这些数组的方法过滤掉这些数组 我正在用这个脚本搜索它们从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']))
$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英寸的积雪?