nastya97core
@nastya97core
Начинающий программист

Как выводить через for, если в массиве одна строка, с ключом больше 0?

Здравствуйте. Есть два массива, которые я сравниваю:
$aa[] = "a";
$aa[] = "b";
$aa[] = "c";
$bb = array("a","b","z");

$added = array_diff($aa,$bb);
$removed = array_diff($bb,$aa);

Теперь я хочу вывести в строки результат массива:
for ($i = 0, $size = count($removed); $i < $size; ++$i) {
	print_r($removed[$i]);
}

Проблема в том, что $i = 0, потому что внутри removed удалена только одна строка, однако print_r($removed) возвращает
Array
(
    [2] => c
)

потому что это третья строка (2). В итоге цикл for вообще ничего не выводит.

Вопрос в заголовке не совсем верен (я так думаю), потому вопрос не в выводе, а в том, что мне нужно на каком-то этапе отказаться от ключей.
Как вариант можно сделать вот так:
$added = array_values(array_diff($aa,$bb));
$removed = array_values(array_diff($bb,$aa));

вот хочется у вас спросить: не колхоз ли это? Может как-то иначе это делается?
spoiler
Я использую for, потому что он быстрее, чем foreach
  • Вопрос задан
  • 252 просмотра
Решения вопроса 1
Используйте foreach() вместо for():

foreach ($removed as $value) {
   print_r($value);
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы