php foreach получает значения из массива - PullRequest
0 голосов
/ 22 апреля 2010

У меня проблемы с доступом к значениям в массиве, массив выглядит так,

Array
(
    [0] => Array
        (
            [id] => 1661
            [code] => 849651318
            [job_status] => 4
            [looking_for] => Lorem ipsum
            [keywords_education] => Derby University
            [sector_id_csv] => 10,21,9,22,26
            [last_job_title_1] => Programmer
            [last_job_employer_1] => HBOS
            [city] => Bury
            [expected_salary_level] => LEVEL_2
            [education_level] => COLLEGE
            [job_looking_for] => 
            [is_contract] => Y
            [is_permanent] => N
            [is_temporary] => Y
        )

)
Array
(
    [0] => Array
        (
            [id] => 402
            [code] => 849650059
            [job_status] => 3
            [looking_for] => Lorem ipsum
            [keywords_education] => Paris College
            [sector_id_csv] => 27,22,19,21,12
            [last_job_title_1] => Programmer
            [last_job_employer_1] => HSBC
            [city] => Bury
            [expected_salary_level] => LEVEL_2
            [education_level] => COLLEGE
            [job_looking_for] => 
            [is_contract] => N
            [is_permanent] => Y
            [is_temporary] => Y
        )

)
Array
(
    [0] => Array
        (
            [id] => 1653
            [code] => 849651310
            [job_status] => 3
            [looking_for] => Lorem ipsum
            [keywords_education] => Crewe University
            [sector_id_csv] => 27,15,19,21,24
            [last_job_title_1] => Programmer
            [last_job_employer_1] => ICI
            [city] => Bury
            [expected_salary_level] => LEVEL_2
            [education_level] => UNIVERSITY
            [job_looking_for] => 
            [is_contract] => N
            [is_permanent] => Y
            [is_temporary] => Y
        )

)

Я пытаюсь получить значения, я попытался сделать следующее,

foreach ($result as $rslt) {
    echo $rslt->id;
}

Я также пытался,

foreach ($result as $rslt) {
    $rslt['id'];
}

Но ничего из этого не работает, я не знаю почему, кто-нибудь может помочь?

Ответы [ 3 ]

5 голосов
/ 22 апреля 2010

Чтобы указать на некоторые вещи и, надеюсь, прояснить любую путаницу, в вашем первом примере:

foreach ($result as $rslt) {
    echo $rslt->id;
}

Оператор стрелки (->) используется не по назначению. Обычно он используется для вызова метода объекта класса, в вашем случае $rslt будет объектом класса, а id будет методом, а это не так.

Во втором примере

foreach ($result as $rslt) {
    $rslt['id'];
}

Вы почти ударили ногтем по голове, но вы забыли позвонить echo или print, чтобы вывести значение на экран.

Кроме того, ваш массив $result имеет вложенный массив с индексом 0, поэтому его необходимо изменить

$rslt['id'];

to, вместе с оператором echo или print.

echo $rslt[0]['id'];
1 голос
/ 22 апреля 2010

Второе правильно, но вам не хватает echo или print

echo $rslt['id'];

Из приведенного вами примера кода не ясно, что такое $result.
Если $result охватывает все перечисленные массивы, вам нужно будет сделать

foreach($result as $rslt) {
    echo $rslt[0]['id'];
}

Дополнительная ссылка:

0 голосов
/ 22 апреля 2010

Я уверен, что кто-то опубликует ответ в следующие 0,3 секунды, поэтому я просто попытаюсь помочь вам с вашей методологией. Очевидно, вы знаете, как использовать print_r (или var_dump). Вы пытались использовать его на $ rslt в вашем массиве? Похоже, вам трудно понять, что такое $ rslt.

...