PDA

Просмотр полной версии : [PHP] как узнать индекс массива из объекта


-=Static=-
21.03.2009, 18:07
Привет, хелп плиз.

Есть массив вида:

$array = (
0 => new obj1;
1 => new obj2;
3 => new obj3;
6 => new obj1;
8 => new obj2;
);


Как мне узнать из объекта например obj3 в какой ячейке массива $array он лежит???

всмысле из какого нить метода.

159932
21.03.2009, 18:30
array_search

бл**ь, есть прикреплённая тема для таких вопорсов! или она не достойна тебя?

-=Static=-
21.03.2009, 19:06
сори, я потом об этом подумал ((

-=Static=-
21.03.2009, 19:17
+ В моей ситуации array_search не подойдет... Вот пример кода, в котором он непрально определяет индекс:

$ar = array(
0 => new A,
12 => new B,
1 => new B,
17 => new A,
);

class A
{
function foo()
{
echo "foo";
}
}

class B
{
function bar()
{
global $ar;
echo array_search($this, $ar);
}
}

$ar[1]->bar(); // Тут пишется 12, а должно быть 1

t4Nk
21.03.2009, 20:49
там и должно быть 12, потому как array_search возвращает первый найденный ключ массива.
Можно было бы как-то попытаться воспользоваться array_keys, указав ей вторым параметром переменную $this. Тогда она вернет все ключи, содержащие указанный экземпляр класса, но узнать точно где тот, который тебе нужен, ты не сможешь.

Gifts
21.03.2009, 21:13
-=Static=- Исправь на echo array_search($this, $ar, true);