Здравствуйте. Есть два массива, которые я сравниваю:
$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