Tömb újraindexelése, array_values() függvénnyel

Létrehozunk egy egyszerű tömböt
    
<?php
    $tomb = array(1, 2, 3, 4, 5);
	
    echo"<pre>";
    print_r($tomb);
    echo"</pre>";
?>
Eredményül, ezt kapjuk:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

 


Kitörlünk egy elemet.
    
<?php
    $tomb = array(1, 2, 3, 4, 5);

// kitöröljük a harmadik elemet, mely a 3-as értéket tárolta.	
unset ($tomb[2]); 
	
    echo"<pre>";
    print_r($tomb);
    echo"</pre>";
?>
Eredményül, ezt kapjuk:
A 2-es tömbindex-el rendelkező elem és annak értéke "3" törlődött.


Array
(
    [0] => 1
    [1] => 2
    [3] => 4
    [4] => 5
)

 


Kitörlünk egy elemet, és egy újabbat írunk be.
    
<?php
    $tomb = array(1, 2, 3, 4, 5);

// kitöröljük a harmadik elemet, mely a 3-as értéket tárolta.	
unset ($tomb[2]); 

	$tomb[]= 6; //Ez, egy új elem.
	
    echo"<pre>";
    print_r($tomb);
    echo"</pre>";
?>
Eredményül, ezt kapjuk:
A 2-es index hiányzik, de egy újabb index az 5-ös megjelent.


Array
(
    [0] => 1
    [1] => 2
    [3] => 4
    [4] => 5
    [5] => 6
)

 


Az előző példában csak egy elemet töröltünk, de törölhettünk volna többet is.
Ha egy indexelt tömbben, tetszőleges értéket törlünk, akkor a kulcsunk, azaz tömbindex száma nem lesz folyamatos.
Tömbünk elemeinek sorszámozásában, egy lyuk keletkezik.
Az elemek sorszámozása, mindaddig nem lesz folyamatos, még újra nem indexeljük tömbünket az array_values() függvénnyel.

 


Újraindexeljük tömbünket, az array_values() függvénnyel.
    
<?php
    $tomb = array(1, 2, 3, 4, 5);

// Kitöröljük a harmadik elemet.	
unset ($tomb[2]);

       // Hozzáadunk egy új elemet.
	   $tomb[]= 6; 

// Újraindexeljük tömbünket.	   
$tomb = array_values($tomb);
foreach ($tomb as $i => $ertek);

    echo"<pre>";
    print_r($tomb);
    echo"</pre>";
?>
Eredményül, ezt kapjuk:
A kulcsok, azaz elemindexek,
ismét lyuk nélküli, növekvő sorrendbe vannak.

Array
(
    [0] => 1
    [1] => 2
    [2] => 4
    [3] => 5
    [4] => 6
)

 


 

További teszt példák.

<?php
$array = array(1, 2, 3, 4, 5);
// Következő lépésben, kitörlünk minden elemet, de magát a tömböt nem
foreach ($array as $i => $ertek) { unset($array[$i]); }
print_r($array);
?>
Eredményül, egy üres tömböt kapunk:

Array ( )
<?php
$adatok = array(1, 2, 3, 4, 5);
// Következő lépésben, kitörlünk minden elemet, a tömbből.
foreach ($adatok as $i => $ertek) { unset($adatok[$i]); }
// Hozzáadunk egy elemet (az új elemazonosító = 5 lesz, az elvárt 0 helyett)
$adatok[ ] = 6;
echo"<pre>";
print_r($adatok);
echo"</pre>";
?>
Eredményül, ezt kapjuk:

Array
(
    [5] => 6
)
<?php
$tomb = array(1, 2, 3, 4, 5);
// Következő lépésben, kitörlünk minden elemet, de magát a tömböt nem
foreach ($tomb as $i => $ertek) { unset($tomb[$i]); }

// Hozzáadunk egy elemet.
$tomb[] = 6;

//Ha, újraindexeljük, és hozzáadunk még elemeket. Nézzük meg, mi lesz?
$tomb = array_values($tomb);
$tomb[] = 7;
$tomb[ ] = 17;
$tomb[ ] = 27;
echo"<pre>";
print_r($tomb);
echo"</pre>";
?>
Eredményül, ezt kapjuk:

Array
(
    [0] => 6
    [1] => 7
    [2] => 17
    [3] => 27
)