kmom03

  • Författare
  • Meddelande
Användarvisningsbild

William

webbsurfare

  • Inlägg: 7
  • Blev medlem: 22 jul 2019, 00:29

kmom03

Inlägg26 aug 2019, 15:17

Hej!

Jag försöker klara av följande uppgift i PHP:

Jag har två vektorer:
Kod: Markera allt
<?php
$countries = ['United Kingdom', 'Bahamas', 'Ukraine'];
$capitals = ['London', 'Nassau', 'Kiev'];
?>


Nu ska jag försöka förena dem till ett svar med formatet "United Kingdom = London, Bahamas = Nassau, Ukraine = Kiev". Problemet är att jag inte vet var jag ska börja. Vad kallas en sådan operation?

Om någon kan peka mig i rätt riktning så att jag kan leta rätt på svaret, så är jag väldigt tacksam! :)
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11176
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: kmom03

Inlägg26 aug 2019, 16:17

De funktioner som jobbar på arrayer kan man se en översikt av här (manualen):
https://www.php.net/manual/en/function.array.php

Sen behöver man klura på vad det är som funktionen skall göra och vad den kan heta.
...
..:
.... /mos
Användarvisningsbild

William

webbsurfare

  • Inlägg: 7
  • Blev medlem: 22 jul 2019, 00:29

Re: kmom03

Inlägg26 aug 2019, 17:48

Tack, Mikael!

Så här försökte jag lösa det

Kod: Markera allt
$answer1_2 = null;
$countries = ['United Kingdom', 'Bahamas', 'Ukraine'];
$capitals = ['London', 'Nassau', 'Kiev'];
$countryCapital = array_combine($countries, $capitals);

foreach($countryCapital as $country => $capital){
    $answer1_2 .= $country .' = ' . $capital . ", ";
}
echo "$answer1_2";


(Koden finns även här: https://codeshare.io/GqrqnB)

Koden genererar följande resultat:

United Kingdom = London, Bahamas = Nassau, Ukraine = Kiev, .

Det blir fel eftersom det är ett kommatecken och ett mellanslag för mycket i slutet av strängen.

Ska jag använda substr(), för att förkorta strängen? Jag misstänker att det finns ett elegantare sätt.
Användarvisningsbild

mos

dbwebb

  • Inlägg: 11176
  • Blev medlem: 10 nov 2011, 09:52
  • Ort: Ronneby / Bankeryd

Re: kmom03

Inlägg26 aug 2019, 18:08

substr() är helt okey lösning, ibland tar man bara den lösning som man vet funkar.

Kanske finns det elegantare lösningar (jag vet ej i detta fallet), men ibland kanske man bara skall ta en lösning som funkar "tillräckligt bra".
...
..:
.... /mos
Användarvisningsbild

William

webbsurfare

  • Inlägg: 7
  • Blev medlem: 22 jul 2019, 00:29

Re: kmom03

Inlägg26 aug 2019, 18:22

Tack!

Det är bra att höra det från dig! I annat fall brukar jag oroa mig om att mitt sätt kanske inte är optimalt.
Så att använda sig av det sätt man vet fungerar är en bra utgångspunkt för min del. Tack igen! :)

Wim4rk

html-kodare

  • Inlägg: 10
  • Blev medlem: 26 aug 2019, 12:38

Re: kmom03

Inlägg15 sep 2019, 11:47

Nu är jag väl löjligt sent på bollen, men det var rolig problemlösning.
Man skulle ju kunna lägga till en räknare...

Kod: Markera allt
$countries = array('Ireland', 'Hungary', 'Denmark');
$cities = array('Dublin', 'Budapest', 'Copenhagen');

$capital = array_combine($countries, $cities);

$result = null;
$i = 0;
$len = count($capital);

foreach($capital as $country => $city){
    $result .= $country . ' = ' . $city;
    if($i != $len - 1){
        $result .= ', ';
    }
    $i += 1;
}

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 16 gäster