PHP - Dizi değerleri alın

3 Cevap php

Ben bir sql arama (SQL1) kullanarak bir veritabanından bir kayıt almak için çalışıyorum. Bu daha sonra ince bir dizi olarak verir, ama benim bir sonraki aşaması için dizinin bölümünü kullanmak gerekir.

   $opt=get_records_sql($sql1);

        //Diags for SQL content
            print_object($opt);

        $n = count($opt);
        if (empty($opt))
            {
            echo 'No options selected';
            }
        else
            {

            $optno = $opt["subjectid"];

            // Diags of $optno
                echo '<br>$optno = '.$optno;

Gördüğünüz gibi, ben bu kullanmaya çalıştım: subjectid Ben erişmeye çalışıyorum fieldname ve bu bir dizi erişmek için doğru olduğu izlenimi altında olduğu gibi $ opt ["subjectid"], ama aşağıdaki hatayı alıyorum :

Notice: Undefined index: subjectid

Array içeriği:

Array
(
    [1] => stdClass Object
        (
            [uname] => JHollands06
            [tutor] => M LSt
            [subjectid] => 1
            [year] => 2010
            [optid] => 1
        )

)

3 Cevap

Method 1: bunu dökülerek bir dizi nesneyi dönüştürün.

$opt[1] = (array) $opt[1];
echo $opt[1]['subjectid'];

(Birden fazla varsa), bir dizideki tüm nesneleri dönüştürmek için:

foreach ($opt as $k => $val) {
    $opt[$k] = (array) $val;
}

Zaten atanmış gibi Method 2: Sadece bir nesne olarak diyoruz.

echo $opt[1]->subjectid

Bir dizi ve bir nesne arasında bir fark yoktur. '->' Ve bir dizi belirli bir anahtar ile ilişkili değerleri içeren bir nesne kullanılarak çağrılabilir zorunda değişkenleri içerir. Çıkış devletler gibi, bir stdClass nesne, başka bir dizi içeren bir dizi var.

$ Opt satır bir dizidir. Yani böyle bir şey yapardım:

foreach($opt as $row)
{
   echo $row['subjectid'];
}

Ya da sadece bir dizin kullanabilirsiniz:

$opt[0]['subjectid'];

Sizin dizi satır içerir. Bu sadece bir satır değil. Yani ilk satır ile dizin bunu gerekir.

edit: senin satırlar nesneler, benim hatam. Bu yüzden olmalı

$opt[1]->subjectid