search in array voor id en return value

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Thomas de vries

thomas de vries

27/03/2018 19:06:27
Quote Anchor link
Goedendag,

Ik heb een array met de volgende gegevens.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
array(7) {
[0]=> array(3) { ["swapID"]=> string(1) "1" ["swapName"]=> string(3) "2.5" ["swapValue"]=> string(10) "2500000000" }
[1]=> array(3) { ["swapID"]=> string(1) "2" ["swapName"]=> string(1) "5" ["swapValue"]=> string(10) "5000000000" }
[2]=> array(3) { ["swapID"]=> string(1) "3" ["swapName"]=> string(2) "10" ["swapValue"]=> string(11) "10000000000" }
[3]=> array(3) { ["swapID"]=> string(1) "4" ["swapName"]=> string(2) "15" ["swapValue"]=> string(11) "15000000000" }
[4]=> array(3) { ["swapID"]=> string(1) "5" ["swapName"]=> string(2) "20" ["swapValue"]=> string(11) "20000000000" }
[5]=> array(3) { ["swapID"]=> string(1) "6" ["swapName"]=> string(2) "40" ["swapValue"]=> string(11) "40000000000" }
[6]=> array(3) { ["swapID"]=> string(1) "7" ["swapName"]=> string(2) "50" ["swapValue"]=> string(11) "50000000000" } }


Wat ik wil en waar ik dan ook niet uitkom is het volgende
Ik dien te controleren of de swapID voorkomt in de array en dan van dat ID de swapName terug te geven.
 
PHP hulp

PHP hulp

25/04/2024 13:48:20
 
Rob Doemaarwat

Rob Doemaarwat

27/03/2018 19:18:58
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
//$swap_id = gezochte ID
//$array = bovenstaande array
$name = null;
foreach($array as $record) if($record['swapID'] == $swap_id){
  $name = $record['swapName'];
  break; //ID gevonden, stap nu uit de foreach
}
//als het swapID is gevonden, dan staat de bijbehorende swapName nu in $name
//anders is $name nog steeds leeg/null
 
Thomas van den Heuvel

Thomas van den Heuvel

27/03/2018 19:25:54
Quote Anchor link
Als het swapID uniek is is de aanpak van @Rob een mogelijke oplossing... maar als het swapID uniek is, waarom zorg je er dan niet voor dat deze direct als key wordt gebruikt in dat array, dan hoef je in eerste instantie niet te zoeken...
 
Thomas de vries

thomas de vries

27/03/2018 19:39:00
Quote Anchor link
Bedankt Rob,
zelf had ik al een oplossing gevonden voor wat ik wil.

Dat van jou neem ik wel mee zodat ik het kan gebruiken als ik het inderdaad dan nodig heb.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
public function GetSwap($swapID) {
        array_unshift($this->Swaps, '');
        unset($this->Swaps[0]);
        return $this->Swaps[$swapID]['swapName'];
    }


Heb bovenstaande code omdat ik het zo aanroep.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<div class="rTableCell"><h3>Current players in the '.$GoldSwap->GetSwap($_GET['p']).'B Swap</h3></div>


en dus er geen 0 in voorkomt als id.
 
Ben van Velzen

Ben van Velzen

27/03/2018 20:40:22
Quote Anchor link
Waarom unshift je als je direct daarna het nieuwe element toch verwijdert? De key is niet gegarandeerd gelijk aan id - 1. Dat zal alleen zo zijn in een schone database waar nooit wat uit verwijderd is. En zelfs dan niet gegarandeerd.
 
Thomas de vries

thomas de vries

28/03/2018 06:38:43
Quote Anchor link
Hoi ben.
Omdat dit werkt. en ook werd aangegeven op stackoverflow.

Heb nu het een en ander aangepast zoals Thomas het zei. Id gelijk als key meegeven.
 
Ben van Velzen

Ben van Velzen

28/03/2018 10:43:44
Quote Anchor link
Als dit op SO werd aangegeven is het tijd om dat antwoord te downvoten. Het is immers een schijnoplossing.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.