V
V
Vyacheslav Lebedev2014-04-20 21:01:34
PHP
Vyacheslav Lebedev, 2014-04-20 21:01:34

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');

I need only these array elements to remain, namely:
array ('Reviews', 'fio', 'email', 'categoryRev', 'review');

Answer the question

In order to leave comments, you need to log in

4 answer(s)
V
Vyacheslav Lebedev, 2014-04-20
@slavikse

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;
}

S
svd71, 2014-04-20
@svd71

foreach($arData as $key => $val)
if (strtolower($val) == $val)
  unset($arData[ $key ]);

N
nikel303, 2014-04-21
@nikel303

array_intersect
or
array_intersect_key

S
Sekira, 2014-04-21
@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')

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question