» »

[PHP] empty array

[PHP] empty array

matijaz74 ::

Pozdravljeni! Bom problem kar napisal. Imam dva polja. Eno je prazno drugo pa polno. Iz polnega želim prenesti določene podatke v prazno. Problem je sedaj tu ko želim izvedeti velikost polja mi prikaže da je polje prazno. seveda sem napisal ukaz
echo sizeof($polje);
Na začetku sem napisal tudi
$polje = array();
Očitno sem nekaj pozabil. Pogledal sem tudi v php.net in so prikazani primeri kreiranja polja ali tabele samo tako da v štartu vnašajo podatke. Kako pa skreirati prazno polje? Hvala vam za odgovor.
lp
Matijaž

BigWhale ::

$empty_array = array();
$non_empty_array = array(1,2,3,4);

if (isset($empty_array)) echo count($empty_array));

matijaz74 ::

BigWhale je izjavil:


$empty_array = array();
$non_empty_array = array(1,2,3,4);

if (isset($empty_array)) echo count($empty_array));


Zdravo. To vem. Kaj pa v primeru prenos iz ene polne tabele/polja v drug prazno tabelo/polje? Prenos že gre. Vendar če preverim ali je vnešeno določen podatek v prazno tabelo/polje pa mi javi da ne obstaja.

Primer:
$polje1 = array(1,2,3,4,5,6,7,8,7,6,5,4,3,2,1);
$polje2 = array();

for($i=0;$i<sizeof($polje1);$i++){
  $vrednost = $polje1[$i];
  
  for($n=0;$n<sizeof($polje2);n++){
    if($polje2[$n]=="")
      $polje2[$n]=$vrednost;
    else{
      if($polje2[$n]==$polje1[$i])
        break; 
    }       
  }
}

# preverim velikost polje2
echo sizeof($polje2); // <== prikaže da je prazno polje. Rezultat je velikosti je 0
print_r($polje2); // izpis je normalen.


Kodo sem napisal kar tu zato so mogoče tipkarske napake. Podobno sem napisal mi ne deluje. Ne vem kako naj še drugače rešim težavo. Hvala, vam za pomoč.
lp
Matijaž

Zgodovina sprememb…

jype ::

matijaz74> Imam dva polja.

Dve polji.

foreach ($polje1 as $el) $polje2[] = $el;

Zgodovina sprememb…

  • spremenilo: jype ()

matijaz74 ::

jype je izjavil:

matijaz74> Imam dva polja.

Dve polji.

Upss ... se opravičujem tudi za slovnično napako.

jype je izjavil:



foreach ($polje1 as $el) $polje2[] = $el;


To je v redu jaz bi pa rad preveril, da se podatki ne podvojujejo. V prejšnjem primeru ki sem ga napisal pa ne bo najdel podatka.
lp
Matijaž

Ziga Dolhar ::

Mal nespretno mešaš način dela z dvema različnima tipoma polj v PHPju - (kvazi)indeksiranimi in (kvazi)asociativnimi. PHP: Arrays - Manual

Nujno si poglej, kako "delujeta" obe "vrsti" polj oz. kako se ju manipulira - sploh ker indeksi delujejo bistveno drugače v indeksiranem/asociativnem polju.

Ampak, če te prav razumem - ti v bistvu želiš izvesti združitev dveh polj tako, da bosta na koncu obe polju enaki in vsebovali unijo obeh posameznih polj (a brez ponavljanj)?
https://dolhar.si/

Zgodovina sprememb…

Ziga Dolhar ::

Če želiš kar mislim da želiš -

$polje1 = array(1,2,3,4,5,6,7,8,7,6,5,4,3,2,1);
$polje2 = array(1,3,9,10, 20, 50);

$result = array_merge(array_unique(array_merge($polje1, $polje2)));


Prvi merge združi oba arraya. Unique pofiltrira tako, da ima zgolj edinstvene vrednosti. Drugi, zunanji merge (povsem opcijski), arrayu še poresetira index tako, da je lepo "po vrsti".

Če želiš, da $polje1 in/ali $polje2 postane tako združeno, namesto $result zapiši ime tega polja, ali pa recimo, naj mi bog odpusti:

$polje1 = $polje2 = array_merge(array_unique(array_merge($polje1, $polje2)));


Precej laže te bomo sicer razumeli, če boš opisal, kakšen imaš input, in kakšen output želiš (torej, ne opisno, ampak konkretno zapiši polje, ki ga želiš dobiti ven) :).
https://dolhar.si/

Zgodovina sprememb…

BigWhale ::

Ziga Dolhar je izjavil:


Če želiš, da $polje1 in/ali $polje2 postane tako združeno, namesto $result zapiši ime tega polja, ali pa recimo, naj mi bog odpusti:


$polje1 = $polje2 = array_merge(array_unique(array_merge($polje1, $polje2)));



Bog ti ne bi odpustil ne levega, ne srednjega in ne desnega dela med enacaji... ;>

matijaz74 ::

Ziga Dolhar je izjavil:

Če želiš kar mislim da želiš -


$polje1 = array(1,2,3,4,5,6,7,8,7,6,5,4,3,2,1);
$polje2 = array(1,3,9,10, 20, 50);

$result = array_merge(array_unique(array_merge($polje1, $polje2)));


Prvi merge združi oba arraya. Unique pofiltrira tako, da ima zgolj edinstvene vrednosti. Drugi, zunanji merge (povsem opcijski), arrayu še poresetira index tako, da je lepo "po vrsti".

Če želiš, da $polje1 in/ali $polje2 postane tako združeno, namesto $result zapiši ime tega polja, ali pa recimo, naj mi bog odpusti:


$polje1 = $polje2 = array_merge(array_unique(array_merge($polje1, $polje2)));


Precej laže te bomo sicer razumeli, če boš opisal, kakšen imaš input, in kakšen output želiš (torej, ne opisno, ampak konkretno zapiši polje, ki ga želiš dobiti ven) :).


Hvala ti za odgovor. Jaz ne mislim združevati dveh polj. No bom pa k obstoječemu primeru dodal naključno dodeljevanje index-a
$vrednost = rand(time(),sizeof($polje1));
ter zamenjal velikost $polja2 iz sizeof($polje2) v 15. $polje1 je večje od $polja2. Rabim pa samo določene vrednosti iz $polja1.
Ok popravljam namesto
$polje[$n]=$vrednost;
spreminjam v
$polje[]=$vrednost;

Hvala za odgovor.
lp
Matijaž

Zgodovina sprememb…

BigWhale ::

Lej, glavni problem je to, da ne vemo kaj bi rad naredil. :> Tako ti bo tezko kdorkoli pomagal. :)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

vba array

Oddelek: Programiranje
12855 (548) Vazelin
»

križci krožci c # (strani: 1 2 )

Oddelek: Programiranje
5010798 (9457) Yacked2
»

if(empty($_POST["vsa-polja"]))?

Oddelek: Izdelava spletišč
212397 (2012) Housy
»

php array in path določenega keya:

Oddelek: Izdelava spletišč
151279 (1107) HardFu
»

[Python] Polja, matrike

Oddelek: Programiranje
51701 (1593) OwcA

Več podobnih tem