2011-01-10 3 views
1

안녕에 특정 값을 가져
가정하자 나는 아래의 코드를 가지고 : 나는 단지 TID 번호를 얻고 다른 사람을 제외 할 수 있습니다 방법드루팔/PHP - 배열

[taxonomy] => Array 
    (
     [118] => stdClass Object 
      (
       [tid] => 118 
       [vid] => 4 
       [name] => A 
       [description] => 
       [weight] => 4 
      ) 

     [150] => stdClass Object 
      (
       [tid] => 150 
       [vid] => 5 
       [name] => B 
       [description] => 
       [weight] => 0 
      ) 

    ) 

가, 누군가가 나에게 제안을 전해 주 시겠어요 ? 첫 번째 수준 키와 하위 키 "TID"의 값이 동일하기 때문에

감사는

+6

$ taxonomy [x] -> tid를 사용할 수 없습니까? – Savetheinternet

+1

배열은 노드 객체의 일부입니다. 맞습니까? 그래서 drupal 태그를 추가했습니다. – rik

+1

@rik 질문에 Drupal 컨텍스트를 추가하면 전혀 개선되지 않습니다. 이것은 PHP에만 해당됩니다. 추측에 태그를 추가하는 것은 아마도 최선의 방법은 아닙니다. –

답변

2

는 배열 $ 편곡의 키, 당신은 TID를 가져올 수있다 예를 들어

, 모든 TID 값을 얻기 위해

$key = your key //the key for which you want fetch record 

    $arr['taxonomy'][$key]->tid; 

,

$result = array(); 
foreach($arr['taxonomy'] as $key=>$value) 
{ 
     $value = (array)$value; 
     if(array_key_exists('tid'), $value) 
    { 
      $result[] = $value['tid']; 
    } 
} 

print_r($result); 
+0

[118 ]는 다른 용어/노드로 인해 동적으로 변경되므로이 솔루션을 개선 할 수 있습니다. –

+0

@Charles : 예, 118은 동적입니다. 방금 모범을 보였습니다. 118을 동적 값으로 바꿀 수 있습니다. 참조 용으로 답을 수정하겠습니다. – Nik

+0

명확하지 않은 설명을 드려 죄송합니다. 실제로 배열에 "tid"키가있는 동안 tid 값을 가져 오려고합니다. –

0
$tids = array_keys($yourArray); 

이 작동합니다. 분류 가정

+0

그래서 array_keys()는 118과 150을 반환합니다 ...하지만 배열에 키 = tid가 있는지 확인하려면 tid 값을 반환합니다. 어떻게 수행합니까? –

+0

array_keys()는 값을 삽입하거나 생략하지 않습니다. 모든 키를 반환하고 "key = tid"조건이 모두 참입니다. 부분 집합 (또는 단지 하나의 TID)만을 추출하려면'array_intersect (array_keys ($ yourArray), $ yourTIDs)'를 할 수 있습니다. – rik

+0

@Charles Yeung : 위와 같이'array_keys'를 주면,'foreach' 같은 문자를 사용하여 배열 키를 반복하고'if ($ taxonomy [$ key] -> tid == $ key)'를 확인하십시오. – Spudley

0

찰스 융 당신 '으로 다시 요구 사항이 명확하지 않은 경우, 다른 답변 (Nik의 경우)에서 분류 ID가 동적이라고 말하면 똑같이 하나 이상의 분류 노드가있는 것으로 보이므로배열을 반환한다고 가정 할 수 있습니다.값, 맞습니까?

은 마찬가지로 당신은

$tid=array(); 

foreach($taxonomy as $key=>$value) { 
    $tid[]=$value->tid; 
} 

print_r($tid); 

이 줄 것입니다 ... 당신은 키 = 값, 나는 당신이 무슨 뜻인지 아무 생각도 없어 있는지 확인하려는 릭하는, 그러나 아마 여기에 시작할 수 있다고 말했다 당신의 배열은 tid 값입니다. 거기에 조건을 넣어 출력을 제한하고 싶다면 자유롭게 해보십시오. 요구 사항에 대한 설명이 명확하지 않습니다.

+0

불명확 한 요구 사항에 대해 사과드립니다.이 문제를 고려하십시오. 배열에 key = tid가 있는지 확인한 다음 tid 값을 반환하는 방법? 감사합니다 –