PHP: Mevcut eğer bir dizideki ilk değer almanın iyi bir yolu

4 Cevap

İşte benim kod:

$quizId = '';
foreach ($module['QuizListing'] as $quizListing)    {
    if ($quizListing['id']) {
        $quizId = $quizListing['id'];
        break;
    }
}

Bunu yapmanın iyi bir yolu var mı?

4 Cevap

Ne yaptığınızı varsayarak makul:

  • Birden fazla sınav listeleri görünür; ve
  • hepsi bir kimliğe sahip olamaz.

Ben bu ikisinin biri doğru değildir diye soru varsayalım. İlanınızı ilk sınav istiyorsanız bunu:

$listing = reset($module['quizListing']);
$quizId = $listing['id'];

reset() function returns the first element in the array (or false) yok biri ise.

Bu, her sınav ilan bir kimliği vardır varsayar. Bu durumda değilse, o zaman ne yaptığınızı daha iyi alınamıyor.

Hafif değişiklik:

$quizId = '';
foreach ($module['QuizListing'] as $quizListing)    {
    if (isset($quizListing['id'])) {
        $quizId = $quizListing['id'];
        break;
    }
}

Bu dizi daha iyi muhtemelen var, bir veritabanı gelen ise ilk etapta bu satır içerecek şekilde değil sorguyu filtrelemek cevap

gibi bir şey

SELECT * from Quiz WHERE id <> 0

Bu herhangi başka bir işleme gerek kalmadan kullanılabilen bir dizi verecek.

Anahtar dizisi için varsa array_key_exists kullanarak kontrol edebilirsiniz. Varsa, o zaman ne istersen onu atayın.

if (array_key_exists('id', $quizListing)) {
  $quizId = $quizListing['id'];   
}