php foreach从数组中获取值

sea*_*987 0 php arrays foreach loops multidimensional-array

我在访问数组中的值时遇到问题,数组看起来像这样,

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
        )

)
Run Code Online (Sandbox Code Playgroud)

我试图获得价值,我尝试过以下,

foreach ($result as $rslt) {
    echo $rslt->id;
}
Run Code Online (Sandbox Code Playgroud)

我也尝试过,

foreach ($result as $rslt) {
    $rslt['id'];
}
Run Code Online (Sandbox Code Playgroud)

但这一切都不起作用,我不知道为什么,任何人都可以帮忙吗?

Ant*_*ney 5

在你的第一个例子中指出一些事情并希望澄清任何困惑:

foreach ($result as $rslt) {
    echo $rslt->id;
}
Run Code Online (Sandbox Code Playgroud)

箭头操作符(->)被滥用.它通常用于在类对象上调用方法,在您的情况下,$rslt它将是一个类对象,并且id将是一个方法,但事实并非如此.

在你的第二个例子中,

foreach ($result as $rslt) {
    $rslt['id'];
}
Run Code Online (Sandbox Code Playgroud)

你几乎撞到了头上的钉子,但你忘了打电话echoprint将值输出到屏幕上.

此外,您$result的数组在索引处有一个子数组0,因此需要更改

$rslt['id'];
Run Code Online (Sandbox Code Playgroud)

与... echoprint声明一起.

echo $rslt[0]['id'];
Run Code Online (Sandbox Code Playgroud)