2010-12-11 4 views
1

Каков наилучший способ получить доступ ко всем элементам объекта, а не использовать foreach?PHP: лучший способ получить все элементы объекта?

Заранее спасибо ...

+0

'foreach' не работает на объектах. Просьба уточнить. –

+0

уверен, что делает. $ arr = массив («привет», «», «мир»); $ arr = (Object) $ arr; var_dump ($ arr); foreach ($ arr as $ a) { echo $ a; } ... также .. что такое объект в php? : D –

ответ

1

Что случилось с Еогеасп?

Ну но есть несколько методов

Вы могли бы сделать что-то вроде:

$length = count($arr); 
for($i = 0; $i<$length; $i++) 

вы могли бы также сделать

while($i < $length) 

и доступ к элементам непосредственно, если у вас есть цифровые клавиши.

Однако foreach не будет медленнее, и его лучший способ пойти, если у вас нет числовых клавиш.

Вы также можете получить доступ к детали с помощью next($arr) или вы можете push/pop

Я бы сказал, это зависит от контекста, что вы хотите сделать.

Если вы хотите выполнять операции X с массивом размера X, например, вам нужен какой-то цикл.

Если ЮО только хотите применить ту же самую операцию на все элементы, которые вы можете использовать удобную функцию array_map

если вы просто хотите, чтобы получить всю информацию из него можно также использовать get_object_vars однако, то у вас есть только новый массив и что тогда?

Это действительно зависит от контекста, что вы хотите сделать!

В большинстве случаев foreach прекрасно и быстро.

Если вы хотите найти конкретные ключи/значения или посмотреть, существуют ли они, для этого есть специальные оптимизированные array functions.

Смежные вопросы