2016-10-02 8 views
1

私は配列を持っています。文字列と配列は同じ名前の "item"を持ちます。一つのインスタンスは配列であり、もう一つは配列内の文字列です。配列からの文字列文字列を配列から削除する

配列です。

//JSON 



[{ 
      "id":"109", 
      "text":"dashboard", 
      "items":[ //to be ignored 
      { 
       "id":"1", 
       "text":"financial_dashboard", 
       "items":"109" //to be deleted 
      }, 
      { 
       "id":"108", 
       "text":"project_dashboard", 
       "items":"109" //to be deleted 
      } 
      ] 
     }] 


//Array PHP 
(
    [0] => Array 
     (
      [id] => 109 
      [expanded] => true 
      [text] => Dashboard 
      [items] => Array //to be ignored 
       (
        [0] => Array 
         (
          [id] => 1 
          [expanded] => true 
          [text] => Financial Dashboard 
          [items] => 109 //to be deleted 
         ) 

        [1] => Array 
         (
          [id] => 108 
          [expanded] => true 
          [text] => Project Dashboard 
          [items] => 109 //to be deleted 
         ) 

       ) 

     )) 

いずれかの提案がありますか?

+0

これは右、JSONのですか? –

+0

配列がどのように動作しているか知っていなければなりません。この多次元配列はdeleteによって削除できます:array [0]、array [0] [1] – mohade

+0

'for(i = 0; i jonzee

答えて

0

あなたは、削除することで、これを削除することができますどのように配列は仕事、この多次元配列を知っている必要があります。array [0] [0]、配列[0] [1]

unset($a[0][0]); 
unset($a[0][1]); 
0

あなたは、ネストされた2とするかもしれません次のようにマップする。

var arr = [{ 
 
     "id":"109", 
 
     "text":"dashboard", 
 
     "items":[ //to be ignored 
 
     { 
 
      "id":"1", 
 
      "text":"financial_dashboard", 
 
      "items":"109" //to be deleted 
 
     }, 
 
     { 
 
      "id":"108", 
 
      "text":"project_dashboard", 
 
      "items":"109" //to be deleted 
 
     } 
 
     ] 
 
    }]; 
 
    
 
function delNestedItems(a){ 
 
return a.map(o => (o.items.map(q => (delete q.items,q)),o)); 
 
} 
 

 
console.log(delNestedItems(arr))

0

あなたはこの1のような再帰的なPHPの機能を使用できます。

function removeItems(&$arr) { 
    if (!is_array($arr)) return; 
    if (isset($arr["items"]) && is_string($arr["items"])) unset($arr["items"]); 
    foreach ($arr as &$value) removeItems($value); 
} 

はこのようにそれを呼び出します。

removeItems($arr); 

は、それがeval.in上で実行を参照してください。

出力は次のとおりです。

Array 
(
    [0] => Array 
     (
      [id] => 109 
      [text] => dashboard 
      [items] => Array 
       (
        [0] => Array 
         (
          [id] => 1 
          [text] => financial_dashboard 
         ) 

        [1] => Array 
         (
          [id] => 108 
          [text] => project_dashboard 
         ) 

       ) 

     ) 

) 
関連する問題