Выделить из массива PHP кусочек, остальное удалить. Как это сделать?

Добрый вечер!
Уже битых наверно 2 часа ломаю голову, как реализовать выборочное удаление из массива, тщетно.
Помогите пожалуйста решить эту головоломку :)

Итак имеется массив:
array ('Category', 'nameCategory', 'Reviews', 'fio', 'email', 'categoryRev', 'review', 'SignIn', 'login', 'password');

Мне необходимо, чтобы остались только эти элементы массива, в именно:
array ('Reviews', 'fio', 'email', 'categoryRev', 'review');
  • Вопрос задан
  • 2824 просмотра
Решения вопроса 1
slavikse
@slavikse Автор вопроса
Код полон излишеств, но работает :)

$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;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
svd71
@svd71
foreach($arData as $key => $val)
if (strtolower($val) == $val)
  unset($arData[ $key ]);
Ответ написан
Sekira
@Sekira
$old_array = array ('Category', 'nameCategory', 'Reviews', 'fio', 'email', 'categoryRev', 'review', 'SignIn', 'login', 'password');
$new_array = array_slice($old_array, 2, 5);

// в $new_array будет array ('Reviews', 'fio', 'email', 'categoryRev', 'review')
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
26 апр. 2024, в 09:18
500 руб./в час
26 апр. 2024, в 06:46
1500 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект