Autor Zpráva
_fantomas
Profil
Ahoj, neviete mi niekto prosím poradiť ako mam prečíslovať array? mam napríklad
Array ( [0] => jeden [1] => dva [2] => [3] => [4] => tri )
chcem aby prázdne hodnoty zmazalo pole sa prečíslovalo a vzniklo len
Array ( [0] => jeden [1] => dva [2] => tri )
Alphard
Profil
Nejde se na to dívat jen jako na přečíslování. Kdyby tam nějaký prvek nebyl, tak se vůbec nevypíše, tj. nejdřív je třeba tyto prvky smazat. Lze použít např. funkci array_filter, která tyto prvky odstraní (pokud se v callbecku nezadá jiná funkce, odstraní všechny, které se vyhodnotí jako false...). Pak vznikne pole „s dírou“ a to již lze přečíslovat pomocí array_values.
$out = array_values(array_filter($in));
Keeehi
Profil
S callbackem tedy
array_values(array_filter($array, function($value) { return !empty($value); }));
_fantomas
Profil
No tomu asi trochu nechápem, proste mam parsovanu url

<?php
$url = $_SERVER['REQUEST_URI'];

$novaurl = parse_url($url);
$novaurl['path'] = ltrim($novaurl['path'], '/');
$novaurl['path'] = trim($novaurl['path']);
$novaurl = explode('/', $novaurl['path']);

print_r($novaurl);

ak mam v url daco.com/jeden/dva/tri

tak to vrati

Array ( [0] => jeden [1] => dva [2] => tri )

ale ked mam v url daco.com/jeden/dva/tri////styri

tak to vrati

Array ( [0] => jeden [1] => dva [2] => tri [3] => [4] => [5] => [6] => styri )

a ja chcem tie prazdne hodnoty vymazat a precislovat
Keeehi
Profil
Nevím, co je na tom k nepochopení.
...
$novaurl = explode('/', $novaurl['path']);

$novaurl = array_values(array_filter($novaurl, function($value) { return !empty($value); }));
...
_fantomas
Profil
Vdaka za pomoc

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: