Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
[PHP] как узнать индекс массива из объекта |

21.03.2009, 18:07
|
|
Участник форума
Регистрация: 12.11.2006
Сообщений: 213
Провел на форуме: 347573
Репутация:
185
|
|
[PHP] как узнать индекс массива из объекта
Привет, хелп плиз.
Есть массив вида:
PHP код:
$array = (
0 => new obj1;
1 => new obj2;
3 => new obj3;
6 => new obj1;
8 => new obj2;
);
Как мне узнать из объекта например obj3 в какой ячейке массива $array он лежит???
всмысле из какого нить метода.
|
|
|

21.03.2009, 18:30
|
|
Постоянный
Регистрация: 28.09.2007
Сообщений: 820
Провел на форуме: 6722038
Репутация:
1385
|
|
array_search
бл**ь, есть прикреплённая тема для таких вопорсов! или она не достойна тебя?
|
|
|

21.03.2009, 19:06
|
|
Участник форума
Регистрация: 12.11.2006
Сообщений: 213
Провел на форуме: 347573
Репутация:
185
|
|
сори, я потом об этом подумал ((
|
|
|

21.03.2009, 19:17
|
|
Участник форума
Регистрация: 12.11.2006
Сообщений: 213
Провел на форуме: 347573
Репутация:
185
|
|
+ В моей ситуации array_search не подойдет... Вот пример кода, в котором он непрально определяет индекс:
PHP код:
$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
|
|
|

21.03.2009, 20:49
|
|
Познающий
Регистрация: 23.09.2007
Сообщений: 75
Провел на форуме: 938032
Репутация:
86
|
|
там и должно быть 12, потому как array_search возвращает первый найденный ключ массива.
Можно было бы как-то попытаться воспользоваться array_keys, указав ей вторым параметром переменную $this. Тогда она вернет все ключи, содержащие указанный экземпляр класса, но узнать точно где тот, который тебе нужен, ты не сможешь.
|
|
|

21.03.2009, 21:13
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
-=Static=- Исправь на
PHP код:
echo array_search($this, $ar, true);
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|