php foreach bir diziden değerler alma

3 Cevap php

Ben sorun bir dizi değerlere erişim yaşıyorum, dizi, bu gibi görünüyor

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
        )

)

Ben değerlerini almak için çalışıyorum, ben, aşağıdakileri yaparak denedim

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

Ben de denedim,

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

Ama bu eserlerin hiçbiri, ben neden kimse yardımcı olabilir bilmiyorum?

3 Cevap

Bir kaç şey işaret ve umarım ilk örnekte, herhangi bir karışıklığa netleştirmek için:

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

Ok operatörü (->) yanlış olduğu. Genellikle sizin durumunuzda $rslt Bir sınıf nesnesi olacağını ve id böyle değil bir yöntem olurdu, bir sınıf nesnesi üzerinde bir yöntemi çağırmak için kullanılır.

İkinci örnekte,

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

Neredeyse kafasına çivi vurdu, ancak ekrana çıktı echo veya print değeri çağrı vardı unuttum.

Bunu değiştirmek gerekir 0, bu yüzden de, sizin $result dizi dizininde bir alt dizi var

$rslt['id'];

için, echo veya print deyimi ile birlikte.

echo $rslt[0]['id'];

İkinci doğru, ancak eksik bir echo veya print

echo $rslt['id'];

From the example code you give it's not clear what $result is.
If $result encompasses all the listed arrays, you will have to do

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

Daha fazla referans:

Ben bu yüzden sadece yerine metodoloji ile size yardım etmek için çalışacağım birisi sonraki 0.3 saniye içinde cevap yayınlayacağız eminim. Açıkçası print_r (veya var_dump) nasıl kullanacağımı biliyorum. Eğer dizi içinde $ rslt üzerinde kullanarak denediniz mi? Sen zorluk $ rslt ne olduğunu anlamak gibi görünüyor.