2010-10-08 3 views
0

Добрый день всем.Использование значений массива в качестве других ключей массива

У меня есть регулярный массив (это print_r результат, массив может иметь от 1 до п позиций):

Array 
(
    [1] => value1 
    [2] => value2 
    [3] => value3 
) 

Я другой массив, определенный в другом месте, как:

$array_def['value1']['value2']['value3'] = array(
'fl' => 'field1', 
'f2' => 'field2', 
); 

Использование первый результат массива, как я могу проверить, существует ли $ array_def? Другими словами, мне нужно использовать плоские значения массива для проверки соответствия многомерного массива; имейте в виду, что значения могут повторяться в первом массиве, поэтому, переворачивая значения с помощью клавиш, это не вариант, поскольку он будет сталкиваться и удалять дублирующиеся значения.

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

ответ

1

Вы можете сделать это следующим образом:

$a = array(1=>'value1', 2=>'value2', 3=>'value3'); 
$array_def[$a[1]][$a[2]][$a[3]] = array(
'fl' => 'field1', 
'f2' => 'field2', 
); 

Я не думаю, что есть какая-либо ярлык или специальные встроенные функции, чтобы сделать это.

+0

Это предполагает, что $ а всегда будет иметь 3 элементов и $ array_def тоже я имею в виду, это плоское решение, а не динамический, Спасибо за попытку хотя =) – Kusanagi2k

0

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

http://www.php.net/manual/en/function.array-search.php#47116

от: 03-ноября-2004 11:13 слишком много, чтобы скопировать/вставить

вы можете затем цикл по ваш плоский массив и Еогеасп:

multi_array_search ($ search_value, $ the_array)

+0

Это похоже на то, что противоположно тому, что искали OP. – cHao

+0

Точно, мне нужно искать ключи в массиве A, используя значения из массива B, это возвращает ключи, используя значение, усилие, – Kusanagi2k

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