Saya memiliki array nilai dengan PHP, Apakah mungkin ketika pengguna pertama kali memuat ulang halaman, nilainya harus digaungkan, tetapi Jika dia memuat ulang halaman yang sama lagi, Seharusnya tidak menampilkan dua nilai yang sama.

foreach($_SESSION['arrayFolders'] as $value){
    if (in_array($_SESSION['arrayFolders'], $value)) {
        echo 'Do not reload the page, we have already greeted you :)';
    } else {
        echo 'Welcome!';
    }

Apa yang saya coba lakukan dengan kondisi IF adalah, jika nilainya sudah ada di array sesi, jangan gema.

CATATAN: Saat pengguna pertama kali masuk ke halaman, dia membuat larik yang disebut $_SESSION['arrayFolders'].

Setiap pertanyaan jangan ragu untuk bertanya.

EDIT 1:

Balikkan metode in_array.

...

$_SESSION['arrayFolders'][] = '<a>folder/folder2</a>';

...


foreach($_SESSION['arrayFolders'] as $value){
    if (in_array($value, $_SESSION['arrayFolders'])) {
        echo 'Welcome';
        //Here I should delete the value from the string so that It does not loop again.
    } 


1
phphelpinghand 12 Mei 2021, 18:16

1 menjawab

Jawaban Terbaik

Buatlah array asosiatif, di mana pesan adalah kuncinya, dan nilainya adalah flag boolean yang menunjukkan apakah pesan telah ditampilkan. Ketika sebuah pesan ditambahkan ke array, nilainya adalah false. Kemudian ketika halaman dimuat, Anda hanya menampilkan nilai-nilai ini, dan menyetel nilainya ke true untuk mencegahnya ditampilkan lagi.

foreach($_SESSION['arrayFolders'] as $message => &$flag){
    if (!$flag) {
        echo $message;
        $flag = true;
    }
}
unset ($flag); // remove the reference to the array element

Menggunakan variabel referensi &$flag membuat tugas memperbarui larik $_SESSION.

0
Barmar 12 Mei 2021, 18:04