Код (PHP): $array; //некоторый массив $arrayObjects; //пока пустой массив, который заполнится объектами foreach($array as $item){ $arrayObjects[]= new Object($item); } как узнать, с каким индексом только что создался элемент массива? нужно сразу после создания объекта и присвоения в новый элемент массива применить к нему метод: Код (PHP): $arrayObjects[]= new Object($item); $объектСозданныйВыше->metod(); понятно, что можно каждый раз высчитывать длину массива, но это не рационально. делать через for, а счетчик начинать не с 0, а вычислять для него длину массива до начала цикла? а вдруг там какой-то индекс пропущен будет... можно ли проще, не хранится ли индекс только-что добавленного элемента где-то?
Re: как узнать индекс последнего добавленного в массив элеме ну если массив не уменьшается то можно декремент результата array_push юзать
Re: как узнать индекс последнего добавленного в массив элеме спасибо! хотя... выходит, с таким же успехом я могу и count вызывать после добавления... короче надо отказаться от этого подхода, пересмотреть алгоритм.
Код (PHP): $arrayObjects[] = $new_obj = new Object($item); $new_obj->metod(); Хотя я вызываю count и не парюсь. Нет там каких-то жутких затра
индексы массива бывают не только цифровые и последний индекс не всегда равен count()-1. в общем случае надо так: Код (PHP): echo end($array); // выведет последний элемент echo key($array); // выведет индекс текущего элемента (после end() - индекс последнего, после reset() - первого)
точно! что-то я жестко затупил)) делал же уже подобное, только не с объектами. в буферную переменную, а потом ее присвоить. Код (PHP): $buf= new Object($item); $buf->metod1(); $buf->metod2(); $buf->metod3(); $arrayObjects[] = $buf; всем большое спасибо!