2016-03-27 3 views
0

Мне нужно найти значение в многомерном массиве, размер массива не определен. Пусть предположим, что пользователь вводит 1601 результат будет 011. и если 1605, то результат будет 015 по массивуНайти значение в многомерном массиве

array (size=6) 
     0 => 
     array (size=2) 
      0 => string 'Zipcode' (length=7) 
      1 => string 'Territory Code' (length=14) 
     1 => 
     array (size=2) 
      0 => string '1601' (length=4) 
      1 => string '011' (length=3) 
     2 => 
     array (size=2) 
      0 => string '1602' (length=4) 
      1 => string '012' (length=3) 
     3 => 
     array (size=2) 
      0 => string '1603' (length=4) 
      1 => string '013' (length=3) 
     4 => 
     array (size=2) 
      0 => string '1604' (length=4) 
      1 => string '014' (length=3) 
     5 => 
     array (size=2) 
      0 => string '1605' (length=4) 
      1 => string '015' (length=3) 
+1

Я ответил, но то, что заставляет меня в том, что все индексы 1 значения 3-х символов, но шоу длина 1? – AbraCadaver

+0

@AbraCadaver Это должны быть некоторые здоровые персонажи, только вес которых составляет 1/3 персонажа. – Rizier123

+0

У меня есть ответ на ваш вопрос. Но я не знаю, правильно ли это по вашему заданному вопросу. Он возвращает 2-й индекс. – aldrin27

ответ

3

Если Zipcode уникален, то вы можете сделать:

echo array_column($array, 1, 0)[1601]; 

Или если Territory Code уникален:

echo array_search(1601, array_column($array, 0, 1), true); 

array_column() извлекает столбец из многомерного массива для создания одномерный массив.

массив array_column (массив $ вход, смешанный $ COLUMN_KEY [смешанные $ index_key = NULL])

Второй параметр $column_key определяющий, какой столбец вы хотите получить из многомерного массива в качестве значений в одномерный массив. И третий параметр $index_key, определяющий, какой столбец вы хотите использовать в качестве ключей для одномерного массива, который вы возвращаете. Если $index_key не определен, массив будет численным перечислением.

Первый пример кода

Таким образом, первый пример извлекает массив, такие как:

array(1601 => '011', 1602 => '012') 

Используя значение 1601 в качестве ключа вы получите желаемый результат 011.

Второй пример кода

Второй пример использует массив, такие как:

array('011' => 1601, '012' => 1602) 

и ищет 1601 с array_search(), чтобы получить ключ 011, который желаемый результат.

Смотрите эти два примера для того, что сделать второй и третий параметры:

print_r(array_column($array, 1, 0)); 
print_r(array_column($array, 0, 1)); 
+0

Вы не можете написать ответ, не используя 'array_column()' в любом месте, не так ли?)? – Rizier123

+1

Это драгоценные камни! :-) – AbraCadaver

+0

Это работает для меня. Большое вам спасибо @AbraCadaver. –

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