[PHP] Echo MIN() multidimensionale array

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Allen,

Ik heb google al helemaal doorgezocht, zo ook jullie site.. Ik kom er niet uit.

De volgende array heb ik:

$array = array(array($tmp[$i++], $ondertitelge1),
array($tmp[$i++], $ondertitelge2),
array($tmp[$i++], $ondertitelge3),
array($tmp[$i++], $ondertitelge4),
array($tmp[$i++], $ondertitelge5)
);


En daar laat ik de MIN() functie op los:

$lowest = min($array[0][0],$array[1][0],$array[2][0],$array[3][0],$array[4][0]);

Nou wil ik, als b.v. $array[1][0] de laagste waarde heeft, een output als; $array[1][1]
Hetzelfde zou dus gelden voor $array[4][0] , wat dan een output geeft; $array[4][1]

is er iemand die mij na dagen worstelen uit de brand kan helpen?

Groet'n

Jr

Acties:
  • 0 Henk 'm!

  • naam
  • Registratie: Oktober 2007
  • Laatst online: 20-09 22:03
PHP:
1
2
3
4
5
$lowest = array();
foreach ($array as $i => $arrayItem)
{
    $lowest[$i] = min($arrayItem);
}


Geen idee of het werkt, niet getest

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
foreach loopje en elke keer dat de value lager wordt de key onthouden.

{signature}


Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Hoe kom je ooit aan de variabelen $ondertitelge1 t/m $ondertitelge5, en waarom sla je ze zo onduidelijk op in een array?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Nou dat is vrij gemakkelijk te verklaren Glow; ik heb die variabelen nu eerst vast gedefinieerd. De opmaak van het bestand dat straks gebruikt gaat worden wijkt af van wat ik nu in handen heb. Als ik morgen of overmorgen het definitieve bestand krijg worden die wazige variabelen door de output van een array vervangen.

Veranderd overigens niks aan mijn vraag

@Voutloos; ik ga nu ff proberen, bvd!

Acties:
  • 0 Henk 'm!

  • 4Real
  • Registratie: Juni 2001
  • Laatst online: 14-09-2024
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php

    function getLowestNumber($inputArray)
    {
        $lowestNumber = null;
        
        $elements = count($inputArray);
        for ( (int) $i = 0; $i < $elements; $i++ )
        {
            if ( is_array($inputArray[$i]) === true )
            {
                $value = getLowestNumber($inputArray[$i]);
            }
            else
            {
                $value = $inputArray[$i];
            }
            
            if ( $lowestNumber === null || $value < $lowestNumber )
            {
                $lowestNumber = $value;
            }
        }
        
        return $lowestNumber;
    }
    
    $array = array(
        array(3,7,4),
        array(5,9,2),
        array(1,6,2),
    );

    echo getLowestNumber($array);
?>


Zoiets :?

[ Voor 12% gewijzigd door 4Real op 04-03-2010 21:52 ]


Acties:
  • 0 Henk 'm!

  • GlowMouse
  • Registratie: November 2002
  • Niet online
Verwijderd schreef op donderdag 04 maart 2010 @ 21:49:
Nou dat is vrij gemakkelijk te verklaren Glow; ik heb die variabelen nu eerst vast gedefinieerd. De opmaak van het bestand dat straks gebruikt gaat worden wijkt af van wat ik nu in handen heb. Als ik morgen of overmorgen het definitieve bestand krijg worden die wazige variabelen door de output van een array vervangen.
Met die array maak je het alleen maar waziger; de keys 0 en 1 voor de waarde resp naam zijn nou niet echt beschrijvend, evenals de variabelenaam $tmp overigens.

Wat je zoekt is een array $ondertitel = array($ondertitelge1,...,5);

$key = array_search($tmp, min($tmp));
$ondertitel[$key];

Acties:
  • 0 Henk 'm!

  • 4Real
  • Registratie: Juni 2001
  • Laatst online: 14-09-2024
Ok na keer goed te OP te hebben gelezen heb ik het verhaal keertje goed gedaan, ik post even keer dubbel, misschien dat als iemand die andere functie nodig heeft dat hij die kan gebruiken. :)

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php

    function getLowestNumber($inputArray)
    {
        $lowestNumber = null;
        $lowestIndex = null;
        
        $elements = count($inputArray);
        for ( (int) $i = 0; $i < $elements; $i++ )
        {
            $value = $inputArray[$i];
            
            if ( $lowestNumber === null || $value < $lowestNumber )
            {
                $lowestNumber = $value;
                $lowestIndex = $i;
            }
        }
        
        return $inputArray[$lowestIndex][1];
    }
    

    $array = array(
        array(3,'test1'),
        array(8,'test2'),
        array(4,'test3'),
        array(1,'test4'),
        array(7,'test5'),
    );
    
    echo getLowestNumber($array);
?>

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
4Real schreef op donderdag 04 maart 2010 @ 22:09:
Ok na keer goed te OP te hebben gelezen heb ik het verhaal keertje goed gedaan, ik post even keer dubbel, misschien dat als iemand die andere functie nodig heeft dat hij die kan gebruiken. :)

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php

    function getLowestNumber($inputArray)
    {
        $lowestNumber = null;
        $lowestIndex = null;
        
        $elements = count($inputArray);
        for ( (int) $i = 0; $i < $elements; $i++ )
        {
            $value = $inputArray[$i];
            
            if ( $lowestNumber === null || $value < $lowestNumber )
            {
                $lowestNumber = $value;
                $lowestIndex = $i;
            }
        }
        
        return $inputArray[$lowestIndex][1];
    }
    

    $array = array(
        array(3,'test1'),
        array(8,'test2'),
        array(4,'test3'),
        array(1,'test4'),
        array(7,'test5'),
    );
    
    echo getLowestNumber($array);
?>
Dit werkt magnifiek! En daarmee ook opgelost!
Dank u dank u!

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Ongetwijfeld zal die functie het beste ding zijn na gesneden brood, maar volgens mij doet hij weinig anders dan:
PHP:
1
2
3
4
5
    function getLowestNumber($inputArray)
    {
        $lowest = min($inputArray);
        return $lowest[1];
    }

Zeker aangezien lowestNumber steeds een array is. ;) Verder is eigenlijk het grotere ontwerp, dus hoe je aan die inputArray komt, nogal vreemd gok ik zomaar. :p

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten

Pagina: 1