2016-10-02 9 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를 사용하여 삭제할 수 있습니다. 배열 [0] [0], 배열 [0] [1] – mohade

+0

'for (i = 0; i jonzee

답변

0

당신이 배열 작업이 다차원 배열을 삭제하여이를 삭제하는 방법을 알고 있어야합니다 : [0] [0] 배열 [0] [1]

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

당신은 두 개의 중첩와 배열을 할 수 있습니다 지도는 다음과 같습니다.

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

당신은 이와 같은 재귀 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 
         ) 

       ) 

     ) 

)