2016-09-28 143 views
0

所以有一点背景信息是我正在创建一个Web应用程序,并且我有50个数组,我目前正在使用从API获取的内容,我创建了一个脚本找到我不需要的阵列让我们称他们为“坏阵列”,但问题是我不确定如何使用我用来搜索它们的方法过滤这些阵列从PHP JSON对象中删除数组

我是通过他们寻找这个脚本

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

但是,让我们说,我不希望它包括第八阵列和阵列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多次出现的第一批标签。我正在使用一个脚本,查找所有需要删除URL的不需要的数组编号。

+0

我有检测阵列需要什么要删除的脚本 - 如果它的8/15今天和2我会添加它在我原来的职位现在 – ConorReidd

+2

/明天50,那么知道这一点的标准是什么?在纽约的中央公园,我们只收到1.235英寸的积雪,这是否与太阳的股价相比,太阳的相对距离? – MonkeyZeus

回答

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

我没有在我原来的问题中加入这个,现在我会编辑它,因为我没有说清楚。我怎么能动态地做到这一点,我不知道它是否将数组8或数组15,也许它只有两个数组,也许它是30个数组需要删除, – ConorReidd

+0

检查编辑答案。 – user4493177

+1

只需要一小撮,你可以将导致调用continue的'if(){}'合并成一个'if(){}',但总的来说你的答案似乎是正确的。 – MonkeyZeus