[PHP] Problema inserimento nuove chiavi in array

pierPHP

Nuovo Utente
17 Mar 2018
3
0
1
Ciao a tutti, ho gia incontrato il primo problema...
Ho scritto questo codice che nelle mie intenzioni dovrebbe inserire una nuova chiave in coda in un array.
Alla prima esecuzione funziona come dovrebbe e aggiunge la chiave nuova, il problema è che quando ricarico la pagina (suppongo sia il modo corretto per rieseguire il codice...): non aggiunge più altre chiavi come mi aspetto che dovrebbe fare.
Non riesco a capire dove sbaglio.

PHP:
<?php
$array = ['chiave1' => 'xxx', 'chiave2' => 'xxx', 'chiave3' => 'xxx'];

print_r($array);
echo "<br><br>";

$chiave = 'chiave';
$numero = 1;
$trova = $chiave.$numero;
echo "Inizio da ".$trova."<br>";

while (array_key_exists($trova, $array)) {
  echo $trova." esiste gia<br>";
  $numero++;
  $trova = $chiave.$numero;
}
$numero--;
$trova = $chiave.$numero;
echo "Trovato fino a ".$trova."<br><br>";
$numero++;
$trova = $chiave.$numero;
$array[$trova] = 'xxx';

echo "Aggiunto ".$trova."<br><br>";
print_r($array);
echo "<br><br>";
?>
 

macus_adi

Utente Attivo
5 Dic 2017
1.343
91
48
IT/SW
Il codice esegue correttamente le tue direttive.... se necessiti che la coda sia incrementata, dovresti far uso di un db o in alternativa memorizzarti l'array in un file.... altrimenti è ovvio che l'array iniziale è quello e viene aggiunta solo una chiave....
In alternativa potresti memorizzarti il todo in sessioni, così potresti effettuare il merge degli array....
Modificando solo la parte iniziale....
PHP:
session_start();

$array = ['chiave1' => 'xxx', 'chiave2' => 'xxx', 'chiave3' => 'xxx'];
if(!empty($_SESSION)){
    $array=array_merge($array,$_SESSION);
}


print_r($array);
echo "<br><br>";

$chiave = 'chiave';
$numero = 1;
$trova = $chiave.$numero;
echo "Inizio da ".$trova."<br>";

while (array_key_exists($trova, $array)) {
    echo $trova." esiste gia<br>";
    $numero++;
    $trova = $chiave.$numero;
}
$numero--;
$trova = $chiave.$numero;
echo "Trovato fino a ".$trova."<br><br>";
$numero++;
$trova = $chiave.$numero;
$array[$trova] = 'xxx';
$_SESSION[$trova]='xxx';

echo "Aggiunto ".$trova."<br><br>";
print_r($array);
echo "<br><br>";
 
  • Like
Reactions: pierPHP

pierPHP

Nuovo Utente
17 Mar 2018
3
0
1
Grazie per la risposta Macus_adi, si è vero in effetti era abbastanza ovvio, come l'avevo scritto inizialmente ripartiva sempre dall'array originale di tre elementi...
L'ho riscritto anche con la soluzione del file di appoggio come mi hai consigliato, non è elegante come la soluzione delle sessioni che hai postato tu però funziona correttamente anche così.
PHP:
<?php
$array = [];
$file=fopen("test.txt","r+");
echo "Inizio a leggere<br><br>";

while (!feof($file))
{
$riga = fgets($file);
echo $riga . "<br>";
$arrayRiga = explode("=>", $riga);
$array[$arrayRiga[0]] = $arrayRiga[1];
}

echo "<br>Fine lettura<br><br>";
print_r($array);

$chiave = 'chiave';
$numero = 1;
$trova = $chiave.$numero;
echo "<br><br>Inizio da " . $trova . "<br><br>";

while (array_key_exists($trova, $array)) {
  echo $trova . " esiste gia<br>";
  $numero++;
  $trova = $chiave.$numero;
}
$numero--;
$trova = $chiave.$numero;
echo "Trovato fino a " . $trova . "<br><br>";
$numero++;
$trova = $chiave.$numero;
$array[$trova] = 'xxx';
echo "Aggiunto " . $trova . "<br><br>";

fwrite($file, "\r\n" . $trova . "=>" . "xxx");
echo "Scritto " . $trova . "<br><br>";

print_r($array);
fclose($file);
?>
 
Discussioni simili
Autore Titolo Forum Risposte Data
EffeElle Php problema su inserimento dati mysql PHP 47
N [PHP/MySQL] Problema inserimento stringhe ' or ', ' and ' PHP 2
K [php] Problema con inner join PHP 4
K [PHP] Problema con variabili concatenate. PHP 1
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
D problema php mysql PHP 1
D problema php mysql PHP 1
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
A Problema checkout carrello php PHP 2
G Problema caricamento tabelle MySql da PhP PHP 0
M Problema con php per calcolo costo percentuale PHP 7
O Problema Formmail in PHP su Aruba PHP 0
WebmasterFioriniAndrea Chat e php [problema] PHP 3
L [PHP] Problema con Telegram PHP 1
WebmasterFioriniAndrea [PHP] Problema che non mi fa vedere niente PHP 2
K Help: problema con uno script di booking in php! PHP 0
A [PHP] Problema query insert [RISOLTO] PHP 14
N [Apache] problema con estensione php Apache 0
C [PHP] Problema con download file PHP 0
M [PHP] Problema con preg_match PHP 1
gandalf1959 [PHP] problema con l'utilizzo di Header PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
M [PHP] Problema con query select PHP 2
L Problema jQuery validation AJAX (PHP 7) PHP 6
L Problema funzione mail() PHP PHP 3
S [PHP] Problema con istruzione "use" PHP 23
A Problema PHP PHP 1
T [php] problema creazione query select-where PHP 5
M [PHP] problema if PHP 3
L [PHP] Problema su codice o server PHP 5
T [PHP] problema maggiore e minore PHP 4
Cosina [PHP] fwrite problema con le parole accentate PHP 9
M [PHP] Problema search form PHP 3
F [PHP] Problema con number_format PHP 3
L [PHP] problema count messo in una funzione. PHP 1
P [PHP] Progettino CRUD di esercitazione. Problema su $_FILE. PHP 9
trattorino [PHP] problema entrata immagini insert PHP 1
C Apache Cordova problema con php Programmazione 1
trattorino problema raccapricciante php conteggio query PHP 4
T PHP+MYSQL: problema con quelle maledette lettere accentate... PHP 5
F [PHP] Problema con array multidimensionale PHP 4
F Problema con pagine login in PHP PHP 2
M [PHP] Problema script ricezione e invio posta... PHP 1
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [PHP] Problema Invio Email Elseif PHP 2
A [PHP] Problema invio mail con funzione mail() PHP 3
gandalf1959 problema con la codifica caratteri accentati e speciali tra php e mysql PHP 3
L [PHP] Problema Script 'Not Found' PHP 4
webmachine [PHP][MYSQL] Problema con le SELECT PHP 5
alessandra86 [PHP] Popolamento database con form ricorsivi - problema array (foreach ) PHP 5

Discussioni simili