Тестирование значений массива

#php #laravel #algorithm

#php #laravel #алгоритм

Вопрос:

Итак, претенденты, у меня есть массив, который я создаю с помощью цикла, и я хочу проверить, были ли в массиве два индекса с разными кодами

Итак, мой массив похож :

 Array ( 
    [0] => Array ( 
        [0] => 1 
        [1] => 3f 
    )
    [1] => Array (
        [0] => 2 
        [1] => 3s
    )
    [2] => Array (
        [0] => 2
        [1] => 2f
    )
)
  

Здесь есть два индекса 2, и они не имеют одинакового кода ‘3s’ и ‘2f’, так что это ошибка

другой пример

 $err=array();
array_push($err, array(1,'2f'));
array_push($err, array(2,'3f'));

  

Здесь, если новая запись array_push($err, array(2,'4f')); , как я могу проверить, есть ли в массиве индекс 2 и нет ли сходства кода

Комментарии:

1. Что вы подразумеваете под «тестированием их двух кодов»? Если вы знаете, что элемент присутствует в массиве, почему бы не прочитать его и не выполнить сравнение, которое вы хотите выполнить?

2. Итак, если я вас правильно понимаю $file->INDEX , значение всегда должно увеличиваться на 1. Итак, чтобы проверить, что вы могли бы сравнить его с вашим $i 1 ? И если все коды должны быть одинаковыми, то, я думаю, вы могли бы сказать, что все они должны соответствовать самому первому коду, который вы вводите. Поэтому сохраните значение $file->CODE из первого элемента в отдельной переменной и сравнивайте каждую новую запись с этим кодом перед его вставкой.

3. @NicoHaase Я должен проверить коды, потому что, если два элемента имеют одинаковые коды, ошибки нет

4. @DirkScholten нет, коды должны быть одинаковыми для двух одинаковых индексов, а не для всех

5. не могу понять вашу проблему.

Ответ №1:

Возможно, я неправильно истолковал это, но мне кажется, что последний приведенный вами пример может быть неверным и, скорее, так и должно быть в элементе 3 0 => 2, 1 => '3s' (после вашего редактирования вы подтвердили мои подозрения)

Итак, моя интерпретация заключается в том, что вы хотите проверить, существует ли в вашем наборе данных тот же ИНДЕКС, но другой КОД.

Чтобы проверить это, вы можете использовать 1-мерный массив и выполнить проверку следующим образом:

 foreach ($files as $file ) {
    if (isset($this->tab[$file->INDEX]) amp;amp; $this->tab[$file->INDEX] != $file->CODE) {
         // Failure state
    }

    $this->tab[$file->INDEX] = $file->CODE;
}