Разбор массивов из API Facebook GRAPH - PullRequest
0 голосов
/ 23 ноября 2011

Я использую PHP для обработки вызовов API Facebook GRAPH.Мне нужен лучший способ разобрать вывод.Вот несколько примеров того, что я имею в виду.Ниже приведены некоторые результаты, касающиеся образования.Так что теперь я должен написать около пятнадцати различных операторов elseif для разных возможностей.Если задано первое образование, а тип - «колледж», сделайте это, если не задано первое образование, если задано первое образование, начальная школа и т.д.

 [education] => Array
    (
        [0] => Array
            (
                [school] => Array
                    (
                        [id] => 111894272160018
                        [name] => Spanish River Community High School
                    )

                [year] => Array
                    (
                        [id] => 137616982934053
                        [name] => 2006
                    )

                [type] => High School
            )

        [1] => Array
            (
                [school] => Array
                    (
                        [id] => 35078114590
                        [name] => University of Central Florida
                    )

                [year] => Array
                    (
                        [id] => 118118634930920
                        [name] => 2012
                    )

                [concentration] => Array
                    (
                        [0] => Array
                            (
                                [id] => 104076956295773
                                [name] => Computer Science
                            )

                        [1] => Array
                            (
                                [id] => 107870585903083
                                [name] => Finance
                            )

                    )

                [type] => College
            )

    )

Другой пример - доступ к данным о друзьях пользователя.Он возвращается в массиве, как в коде выше.Я хочу написать какой-нибудь код, например, если тип обучения друзей пользователя - колледж, а основной - это, то сделай это.Но я, очевидно, не буду писать 215 выражений для обработки каждого outset [0], [1], [2] для каждого пользователя.Как мне справиться с этим?Как я могу запустить выражение на всех из них одновременно?Данные о друзьях возвращаются ниже:

 Array
 (
 [0] => Array
    (
        [name] => BLANK
        [education] => Array
            (
                [0] => Array
                    (
                        [school] => Array
                            (
                                [id] => 114760235206446
                                [name] => Abraham Lincoln High School
                            )

                        [type] => High School
                    )

                [1] => Array
                    (
                        [school] => Array
                            (
                                [id] => 103127603061486
                                [name] => Columbia University
                            )

                        [year] => Array
                            (
                                [id] => 140617569303679
                                [name] => 2007
                            )

                        [concentration] => Array
                            (
                                [0] => Array
                                    (
                                        [id] => 187442601290749
                                        [name] => Industrial Engineering & Operations Research
                                    )

                            )

                        [type] => College
                    )

            )

        [work] => Array
            (
            )

    )

[1] => Array
    (
        [name] => BLANK
        [education] => 
        [work] => 
    )

[2] => 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] => 108087985890571
                                [name] => St. Andrew's School
                            )

                        [year] => Array
                            (
                                [id] => 138383069535219
                                [name] => 2005
                            )

                        [type] => High School
                    )

                [2] => Array
                    (
                        [school] => Array
                            (
                                [id] => 20697868961
                                [name] => Boston University
                            )

                        [concentration] => Array
                            (
                                [0] => Array
                                    (
                                        [id] => 108654845832522
                                        [name] => Business Administration
                                    )

                            )

                        [type] => College
                    )

                [3] => Array
                    (
                        [school] => Array
                            (
                                [id] => 20697868961
                                [name] => Boston University
                            )

                        [concentration] => Array
                            (
                                [0] => Array
                                    (
                                        [id] => 108654845832522
                                        [name] => Business Administration
                                    )

                            )

                        [type] => College
                    )

                [4] => Array
                    (
                        [school] => Array
                            (
                                [id] => 108289315859633
                                [name] => University of Miami
                            )

                        [year] => Array
                            (
                                [id] => 138879996141011
                                [name] => 2013
                            )

                        [type] => Graduate School
                    )

                [5] => Array
                    (
                        [school] => Array
                            (
                                [id] => 108289315859633
                                [name] => University of Miami
                            )

                        [year] => Array
                            (
                                [id] => 138879996141011
                                [name] => 2013
                            )

                        [type] => Graduate School
                    )

            )

        [work] => Array
            (
            )

Пример:

 function majorRecommender () {

            if ($this->majorid =='104076956295773' && $this->grad>='2011' || $this->minor='Computer Science' && $this->grad>='2011') {
                echo "<p>Majoring in Computer Science is a definite plus. You're on the right track!<p>";
            } elseif ($this->majorid='104076956295773' && $this->grad<='2011') {
                echo "<p>You majored in Computer Science in college. This should certainly help you in the job market.</p>";
            } elseif ($this->majorid!='104076956295773' && $this->grad<='2011') {
                echo "<p>Have you considered going back to school?</p>";
            } elseif ($this->majorid!='104076956295773' && $this->grad>='2013') {
                echo "<p>You still have time until you graduate. You should consider changing your major to Computer Science</p>";
            } elseif ($this->majorid!='104076956295773' && $this->grad<='2012') {
                echo "<p>You should consider minoring in CS.</p>";
            } elseif ($this->majorid!='104076956295773' && $this->majors!='Computer Science') {
                echo "<p>You should consider majoring in Computer Science, or at the very least minoring in it.</p>";
            }
    }

И экземпляр объекта:

 $collegeid = isset($user_profile['education'][1]['school']['id']) ? $user_profile['education'][1]['school']['id'] : null ;
$college = isset($user_profile['education'][1]['school']['name']) ? $user_profile['education'][1]['school']['name'] : null ;
$majorid = isset($user_profile['education'][1]['concentration'][0]['id']) ? $user_profile['education'][1]['concentration'][0]['id'] : null ;
$major = isset($user_profile['education'][1]['concentration'][0]['name']) ? $user_profile['education'][1]['concentration'][0]['name'] : null ;
$majors = isset($user_profile['education'][0]['concentration'][0]['name']) ? $user_profile['education'][0]['concentration'][0]['name'] : null ;
$minor = isset($user_profile['education'][0]['concentration'][1]['name']) ? $user_profile['education'][0]['concentration'][1]['name'] : null ;
$minors = isset($user_profile['education'][1]['concentration'][1]['name']) ? $user_profile['education'][1]['concentration'][1]['name'] : null ;
$grad = isset($user_profile['education'][1]['year']['name']) ? $user_profile['education'][1]['year']['name'] : null ;
$grads = isset($user_profile['education'][0]['year']['name']) ? $user_profile['education'][0]['year']['name'] : null ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...