Answer the question
In order to leave comments, you need to log in
Select a piece from the PHP array, delete the rest. How to do it?
Good evening!
Already beaten, probably 2 hours, I have been racking my brains on how to implement selective deletion from the array, in vain.
Please help me solve this puzzle :)
So there is an array:
array ('Category', 'nameCategory', 'Reviews', 'fio', 'email', 'categoryRev', 'review', 'SignIn', 'login', 'password');
array ('Reviews', 'fio', 'email', 'categoryRev', 'review');
Answer the question
In order to leave comments, you need to log in
The code is full of frills, but it works :)
$start = NULL;
$stop = NULL;
foreach ( $array as $key => $value ) {
// Если не равны, значит не искомое имя Таблицы -> ищем дальше
if ( $array === $value ) {
$start = $key; // Инициализируем переменную числом, когда найдется сравниваемая Таблица
continue;
} elseif ( ( is_numeric( $start ) && checkForOneLargeLetter( $value ) ) ||
end( $array ) === $value ) {
// Выполнится только если была найдена редактируемая Таблица, либо это конец массива
$stop = $key;
if ( end( $array ) === $value ) {
$stop ++;
}
echo 'Stop : ' . $stop . ' - ' . $value . '<br>';
break;
}
}
$stop -= $start;
$array = array_slice( $array, $start, $stop );
----------- функция из кода ------------
function checkForOneLargeLetter( $value ) {
// Паттерн для поиска строк, начинающихся с одной большой буквы
$pattern = '/^[A-Z].*/';
if ( preg_match( $pattern, $value ) ) {
return true;
}
return false;
}
foreach($arData as $key => $val)
if (strtolower($val) == $val)
unset($arData[ $key ]);
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question