Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  4 6636
Hei folkens.


Har et lite spørsmål her.

Jeg har en json fil som jeg henter ut data fra.
Data jeg skal hente ut blir vist som dette:

Kode

array(
    'type' => "Noe",
    'properties' => array (
          'Name'   => "Navn"
    )
)
array(
    'type' => "Noe",
    'properties' => array (
          'Name'   => "Navn"
    )
)
array(
    'type' => "Noe",
    'properties' => array (
          'Name'   => "Navn"
    )
)
Jeg trenger her å finne en måte i php å hente ut Indexen til en array som har et sett navn under Properties -> Name

De endrer JSON fil ganske ofte og indexen er aldri den samme etter hver oppdatering. Derfor må jeg hente ut navnene og finne indexen sånn at data som kommer ut blir da korrekt.

Noen som har tips her?
Takk for lenke liasis, men jeg må nok klare meg uten et bibliotek på dette prosjektet.
Om jeg forstår deg rett ønsker du å finne indexen til det elementet som har en verdi i "Name"-feltet i "properties"?

Du kan lage deg en enkel funksjon som looper gjennom og sjekker verdiene som returnerer indeksen til det elementet den finner som matcher:

Kode

<?php
$data = [
  [
    'type' => "Noe",
    'properties' => array (
      'Name'   => "A"
    )
  ],
  [
    'type' => "Noe",
    'properties' => array (
      'Name'   => "B"
    )
  ],
  [
    'type' => "Noe",
    'properties' => array (
      'Name'   => "C"
    )
  ],
];

function find($name, $data) {
  foreach ($data as $index => $value) {
    if ($value['properties']['Name'] == $name) {
      return $index;
    }
  }
  return FALSE;
}

echo find('B', $data); // Returnerer 1
Hei.

Ja trenger da å finne Indexen. Kan vise hele arrayen her ved å ta bort data.

Kode

  1 => 
    array (size=3)
      'type' => string 'Feature' (length=7)
      '*****' => 
        array (size=2)
          'type' => string '******' (length=18)
          'geometries' => 
            array (size=1)
              ...
      'properties' => 
        array (size=12)
          'Name' => string 'Test1' (length=5)
          '******' => string '******' (length=11)
          '******' => string '******' (length=11)
          '******' => string '******' (length=79)
          '******' => string '******' (length=29)
          'Area' => int 2
          ******' => boolean true
          'Location' => string '******' (length=26)
          '******' => string '******' (length=4)
          '******' => string '******' (length=30)
          'Transport' => string '******' (length=172)
          'Status' => string '******' (length=246)
  2 => 
    array (size=3)
      'type' => string 'Feature' (length=7)
      '*****' => 
        array (size=2)
          'type' => string '******' (length=18)
          'geometries' => 
            array (size=1)
              ...
      'properties' => 
        array (size=12)
          'Name' => string 'Test2' (length=5)
          '******' => string '******' (length=11)
          '******' => string '******' (length=11)
          '******' => string '******' (length=79)
          '******' => string '******' (length=29)
          'Area' => int 2
          ******' => boolean true
          'Location' => string '******' (length=26)
          '******' => string '******' (length=4)
          '******' => string '******' (length=30)
          'Transport' => string '******' (length=172)
          'Status' => string '******' (length=246)
Her har man Index 1 og 2 og sånn her fortsetter det til rundt Index 79.
Så her må jeg da f.eks finne Navnet "Test2" og få ut Indexen som da er 2.

Skal sjekke løsningen din her @Yochi

Det fungerte helt knall. Takk Yochi
Sist endret av Nikon01; 12. november 2020 kl. 12:44. Grunn: Automatisk sammenslåing med etterfølgende innlegg.