2011-10-20 5 views
0

은 내가 잘 인쇄 할 수있어이 같은 배열 구조를 가지고 : 기본적으로다차원 배열

Array 
(
    [0] => Array 
    (
     [title] => blah 
     [author] => Bob 
     [link] => randomlink 
    ) 

    [1] => Array 
    (
     [title] => random 
     [author] => George 
     [link] => randomlink 
    ) 

    [2] => Array 
    (
     [title] => blah 
     [author] => Bob 
     [link] => randomlink 
    ) 
) 

을, 나는의 배열의 정보 만 출력 할 수 있도록하려면 '저자' 'Bob'과 관련된 보시다시피, 거기에 두 개의 아이템이 있습니다. 배열을 출력 할 때 'Bob'인 'author'를 포함하는 유일한 배열이므로 0과 2 배열 만 표시해야합니다. 어떤 아이디어?

foreach($array as $subarray) 
{ 
    if(strcasecmp($subarray['author'],'Bob') === 0) 
     print_r($subarray); 
} 

답변

5
foreach ($array as $a) 
{ 
if($a['author'] === 'Bob') { 
    echo $a['title']; 
    echo $a['author']; 
    echo $a['link']; 
} 
} 
+0

네, 이것은 그것을했다. 고마워요! – John

2
foreach($arr as $item) 
{ 
    if($item['author'] != 'Bob') 
    { 
     continue; 
    } 
    // print out Bob's stuff 
} 
0

단순히 foreach

foreach ($array as $item) { 
    if ($item['author']) { 
    // Do something with $item 
    } 
} 
1

이 코드입니다! 이 시도 :

for($i=0;$i<count($array);$i++){ 
if($array[$i]['author'] == 'bob'){ 
    echo $array[$i]['title']." > ".$array[$i]['author']." > ".$array[$i]['link']."\r\n<br>"; 
    } 
     } 

...

0

확인 :

+0

항상 그렇지는 않습니다. 하위 배열 중 하나를 삭제하면 어떻게 될까요? –

+0

Sidenote :'for'-test-expression에서 함수를 사용하지 마십시오. – KingCrunch

+0

@AurelioDeRosa 그가 저자 "밥"과 함께 인쇄하기를 원했기 때문에 doest가 있거나 doest가 일치하면 do not는 그것을 반향시킵니다. –