PHP tömb max és min.


MAX és MIN értékek, szöveges tömböknél.
A tömbelemek, betűt és számot is, tartalmaznak.


Létrehozunk egy tömböt, és feltőltjük adatokkal.
Lekérdezzük a tömb adatait, tömb hosszát, azaz,
a tömbben lévő elemek, számát.
<?php

$metomb[0] = "$4,000.00";
$metomb[1] = "$5,000.00";
$metomb[2] = "$7,000.00";
$metomb[3] = "$22,000.00";
$metomb[4] = "$3,500.00";
$metomb[5] = "$4,500.00";
$metomb[6] = "$7,500.00";
$metomb[7] = "$7,000.00";
$metomb[8] = "$6,250.00";
$metomb[9] = "$9,700.00";

 foreach($metomb as $index => $adat )
      { echo 'metomb['.$index.'] = '.$adat.'<br>'; }

$tombhossza=count($metomb);
echo '<br>Tömb elemeinek száma = '.$tombhossza.'<br>';
?>


Programunk eredménye.


metomb[0] = $4,000.00
metomb[1] = $5,000.00
metomb[2] = $7,000.00
metomb[3] = $22,000.00
metomb[4] = $3,500.00
metomb[5] = $4,500.00
metomb[6] = $7,500.00
metomb[7] = $7,000.00
metomb[8] = $6,250.00
metomb[9] = $9,700.00

Tömb elemeinek száma = 10

Ha, most akarjuk ABC szerint rendezni, és MAX - MIN, értéket lekérdezni, hibás eredményeket kapunk.
Hiba oka: Tömbelemek adatai, betűt és számot is, tartalmaznak.

Programunk.
<?php
   // ABC rendezés, eredeti indexek megtartásával.
        asort($metomb);

 foreach($metomb as $index => $adat )
      {
		  echo $index.' = '.$adat.'<br>'; 
      }
?>
Programunk eredménye.
ABC rendezés, hibás.
$metomb[3] = $22,000.00
$metomb[4] = $3,500.00
$metomb[0] = $4,000.00
$metomb[5] = $4,500.00
$metomb[1] = $5,000.00
$metomb[8] = $6,250.00
$metomb[7] = $7,000.00
$metomb[2] = $7,000.00
$metomb[6] = $7,500.00
$metomb[9] = $9,700.00
MAX programunk.
<?php  echo max($metomb);  ?>
MAX eredmény, hibás.

$9,700.00
MIN programunk.
<?php  echo min($metomb);  ?>
MIN eredmény, hibás.

$22,000.00


Betű és szám kijavítása után, a következő eredményeket kapjuk.

Rendezés kiíratása,
növekvő ABC sorrendbe.

metomb[4] = $3,500.00
metomb[0] = $4,000.00
metomb[5] = $4,500.00
metomb[1] = $5,000.00
metomb[8] = $6,250.00
metomb[2] = $7,000.00
metomb[7] = $7,000.00
metomb[6] = $7,500.00
metomb[9] = $9,700.00
metomb[3] = $22,000.00


MAX értékű elem, adata = $22,000.00

MIN értékű elem, adata = $3,500.00





Program leírása.
Tömb rendezése, MAX és MIN érték meghatározása.

Megjegyzés:
Ilyen és ezekhez hasonló adatokat kapunk, csv fájlok lekérdezésekor is.
file.csv = Microsoft Excel vesszővel tagolt fájl, a testvér adatokat, külon sorokban tárolja.

<?php
$metomb[0] = "$4,000.00";
$metomb[1] = "$5,000.00";
$metomb[2] = "$7,000.00";
$metomb[3] = "$22,000.00";
$metomb[4] = "$3,500.00";
$metomb[5] = "$4,500.00";
$metomb[6] = "$7,500.00";
$metomb[7] = "$7,000.00";
$metomb[8] = "$6,250.00";
$metomb[9] = "$9,700.00";

$tombhossza=count($metomb);
echo '<br>Tömb elemeinek száma = '.$tombhossza.'<br>';

for($i=0; $i<$tombhossza; $i++)
{
	$tea=$metomb[$i];
	$teadarabolva = str_split($tea);         // Darabolt adatokat, tömbbe íratjuk.
	
	// Számok és betűk válogatása.
	// Csak a számokat gyűjtjük ki, $tombszamok nevű tömbbe.
	
	$cssz='';
	   foreach($teadarabolva as $index => $te )
        {
			if($te=='0' OR $te==1 OR $te==2 OR $te==3 OR $te==4 OR $te==5
			 OR $te==6  OR $te==7 OR $te==8 OR $te==9) 
			    {  $cssz=$cssz.''.$te;   $tombszamok[$i]=$cssz; }
		}
	
}

// Kiválogattuk a számokat, és a "$tombszamok" nevű tömbbe írattuk.
// A "$tombszamok" nevű tömbböt rendezzük "ABC" sorrenbe, eredeti indexek megtartásával.
// A "$tombszamok" nevű tömbelemek indexe megegyezik,
//  az eredeti "$metomb" elemeinek index számaival.


// További részekből, csak azt írassuk ki, melyre szükségünk van.
// Vagy, tíltsuk le azt a program részt, melyre nincs szükségünk,


// --- MAX és MIN meghatározáshoz nem kell, az ABC rendezés. ------------ 

asort($tombszamok);  // Rendezés, növekvő ABC sorrendbe, eredeti index megtartásával.

echo'<p>Rendezés kiíratása,<br> növekvő ABC sorrendbe.</p>';

 foreach($tombszamok as $index => $adat ) 
      { 
        $meadat=$metomb[$index];
	    echo 'metomb['.$index.'] = '.$meadat.'<br>'; 
	  }

// --- ABC rendezésnek, vége. --------------------------------------------------- 


// A "$tombszamok" nevű tömbből, MAX és MIN értékének meghatározása.		
	$tomb_maxertek = max($tombszamok);
	$tomb_minertek = min($tombszamok);

// MAX értékű elem és MIN értékű elem, indexének meghatározása.
    foreach($tombszamok as $index => $teszama)
      {
        if($tomb_maxertek==$teszama) { $max_index=$index; }
        if($tomb_minertek==$teszama) { $min_index=$index; } 
      }

// MAX - MIN indexekkel, eredeti adatok lekérdezése.			
    echo'<br><br>';	 
       echo 'MAX értékű elem, adata = '.$metomb[$max_index].'<br><br>';
       echo 'MIN értékű elem, adata = '.$metomb[$min_index].'<br>';
    echo '<br><br>';

?>