다음과 같은 다차원 배열을 통해 재귀 함수를 사용하여 특정 값을 찾으려고 시도합니다. 즉, 특정 학교에 다녔거나, 특정 주제에 전공했거나, 특정 직업을 갖고있는 사람들을 찾으려고합니다. 궁금 할 경우이 배열은 Facebook Graph API에서 출력됩니다. 실제로 사용자가 가지고있는 친구의 수에 따라 3 개 이상의 오프셋 배열이 있습니다. 수천 개가 될 수 있습니다.다차원 배열에 대한 재귀 함수?
그래서당신에게 방법의 아이디어를 제공하기 위해 다음과 같습니다
내가 재귀 함수의 아주 작은 지식을 시도한 솔루션입니다 (내 첫번째 생각은 내가 발견 전에 MD 어레이 작동하지 않았다와 in_array 사용하는 것이 었습니다)$friend = $fqlResult[0]['name'];
echo "$friend";
내가 사람의 이름을 삭제하기 때문에 출력은 "BLANK"가 될 것입니다 * : 작품 아래 MD 배열은,이 코드 조각을 확인하십시오.
$data = $fqlResult;
$collegemajor = (isset($value['education'][0]['concentration'][0]['name'])) ? $value['education'][0]['concentration'][0]['name'] : null ;
$major = "Business Administration";
if (isset($collegemajor)) {
foreach($data as $key=> $value) {
if ($value($collegemajor) == $major) {
echo "User $key is majoring in $major";
}
}
}
그래서 위에서 언급 한 다차원 배열이 있습니다. 이 예에서는 Business Admin을 전공 한 모든 사용자의 친구 이름을 가져 오려고합니다. 대학에서. 이 스 니펫에서 알 수 있듯이 배열의 긴 버전에는 아무 것도 없습니다 (생각합니다). 많이 있습니다. 위의 코드는 출력을 생성하지 않으며 작동하게 만드는 방법에 관해서는 분실했습니다. 어떤 도움이라도 대단히 감사하겠습니다.
Array
(
[0] => Array
(
[name] => BLANK
[education] =>
[work] =>
)
[1] => Array
(
[name] => BLANK
[education] => Array
(
[0] => Array
(
[school] => Array
(
[id] => 108087985890571
[name] => St. Andrew's School
)
[year] => Array
(
[id] => 138383069535219
[name] => 2005
)
[type] => High School
)
[1] => Array
(
[school] => Array
(
[id] => 20697868961
[name] => Boston University
)
[concentration] => Array
(
[0] => Array
(
[id] => 108654845832522
[name] => Business Administration
)
)
[type] => College
)
[2] => Array
(
[school] => Array
(
[id] => 108289315859633
[name] => University of Miami
)
[year] => Array
(
[id] => 138879996141011
[name] => 2013
)
[type] => Graduate School
)
)
[work] => Array
(
)
)
[2] => Array
(
[name] => BLANK
[education] => Array
(
[0] => Array
(
[school] => Array
(
[id] => 115444241803885
[name] => Saint Andrews High School
)
[year] => Array
(
[id] => 137616982934053
[name] => 2006
)
[type] => High School
)
[1] => Array
(
[school] => Array
(
[id] => 112033702149888
[name] => Boca Raton High
)
[year] => Array
(
[id] => 137616982934053
[name] => 2006
)
[type] => High School
)
[2] => Array
(
[school] => Array
(
[id] => 108087985890571
[name] => St. Andrew's School
)
[type] => High School
)
[3] => Array
(
[school] => Array
(
[id] => 107573562605861
[name] => Duke University
)
[concentration] => Array
(
[0] => Array
(
[id] => 104045469631213
[name] => Political science
)
)
[type] => College
)
)
[work] =>
)
[4] => Array
(
[uid] => 1234567
[name] => BOB NO ONE
[education] => Array
(
[0] => Array
(
[school] => Array
(
[id] => 106039752760627
[name] => Berwick Academy
)
[year] => Array
(
[id] => 137616982934053
[name] => 2006
)
[type] => High School
)
[1] => Array
(
[school] => Array
(
[id] => 108087985890571
[name] => St. Andrew's School
)
[type] => High School
)
[2] => Array
(
[school] => Array
(
[id] => 105690226130720
[name] => Northeastern University
)
[concentration] => Array
(
[0] => Array
(
[id] => 108654845832522
[name] => Business Administration
)
)
[type] => College
[classes] => Array
(
[0] => Array
(
[id] => 189873264368867
[name] => 2011
)
)
)
)
같은
전화 당신은 넓은 재귀 검색, 또는 특정 일을 하시겠습니까? [예 : 기괴하게, 누군가의 학교가 이름이 Bus.Admin 인 경우, 검색을 통해 침을 뱉어 내고 싶습니까?] – Shad
위에서 볼 수 있듯이 학교와 전공에서는 실제로 이드가 할당되었으므로 이드의 검색 할 때. – buttonitup