print_r($a = array(0=>0,1=>1,5=>2,10=>3));
print "\n";
/**
*
* array array_slice(array,X[,Y]) берет из массивы элементы начиная * с X [и заканчивая Y] и выдаёт результат-массив
*
**/
print_r(array_slice($a,0));
Помогите с ereg (регулярные выражения)
Код:
ereg("(\\#[A-Za-z0-9]+\\#)+",$this->FileData,$this->Items)
в массив $this->Items попадает дважды #PlrNm#, хотя в файле есть только эта переменная, причём только один раз. Значит дело в регулярном выражении. В чём я ошибся и как это исправить?
Oops, я понял в чём дело, просто help давно смотрел, в 0 элементе хранится полная строка соответствия шаблону (ну вообщем какбы там ни было, смотреть нужно начиная с 1 элемента) Но тут возник другой вопрос, я добавил в файл ещё одну переменную #VarName1# но он по прежненему находит только #VarName#, может ereg плохо подходит для данной задачи? или я не правильно написал регулярное выражени?
Вобщем я написал следущее:
Код:
if(preg_match_all("/\#[A-Za-z0-9]+\#/",$this->FileData,$this->Items,PREG_PATTERN_ORDER)){
/*
* с флагом PREG_PATTERN_ORDER массив $this->Items получается вида
* array([0]=> array("#VarName1#","#VarName2#",...,"#VarName3#"))
* что впринципе меня очень устраивает
*/
/* Далее удаляем все дубликаты из массива */
$this->Items=array_unique($this->Items[0]);
/*
* Но так как при удалении дубликатов индексы не изменяются
* удобно использовать ключи
*/
$keys=array_keys($this->Items);
$ResData=$this->Items[$keys[0]];
//...
}
/*
* с флагом PREG_PATTERN_ORDER массив $this->Items получается вида
* array([0]=> array("#VarName1#","#VarName2#",...,"#VarName3#"))
* что впринципе меня очень устраивает
*/
/* Далее удаляем все дубликаты из массива */
$this->Items=array_unique($this->Items[0]);
/*
* Но так как при удалении дубликатов индексы не изменяются
* удобно использовать ключи
*/
$keys=array_keys($this->Items);
$ResData=$this->Items[$keys[0]];
//...
}
На код:
Код:
Получаем вывод:
Код:
Array ( [0] => 0 [1] => 1 [5] => 2 [10] => 3 )
Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 )
Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 )
не-целочисленные ключи не сортируются.
ps: далее скорее всего так же работает, но не ручаюсь;)