Поиск индекса массива в многомерном массиве - PullRequest
1 голос
/ 07 июня 2011

У меня есть массив, подобный

Array ( 
     [0] => Array ( [0] => Array ( [SSN] => 123456789 [borrowerName] => Peter K  ) ) 
     [1] => Array ( [0] => Array ( [SSN] => 412516789 [borrowerName] => Jack P  ) ) 
     [2] => Array ( [0] => Array ( [SSN] => 999338999 [borrowerName] => Angel M  ) ) 
) 

Я хочу иметь возможность искать SSN и возвращать индекс, где он

, например, search($array,'SSN','412516789') должен вернуть 1

Ответы [ 2 ]

2 голосов
/ 07 июня 2011

Конечно, вам нужен foreach.Иначе не могу.

function search($array,$key,$value) {
  foreach($array as $k=>$v) {
    if ($v[0][$key]==$value)
      return $k;
  }
}
0 голосов
/ 07 июня 2011

Вот некоторая функция, выполняющая рекурсивный поиск в многомерном массиве, вы можете адаптировать ее к вашим потребностям.

function findInMultiDim($array, $value){
    if(in_array($value,$array)) return TRUE;
    foreach($array as $v){
        if(is_array($v)){
            $result = findInMultiDim($v, $value);
            if($result === TRUE){
                return TRUE;
            }
        }
    }
    return FALSE;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...