2014-01-21 3 views
0

Я удалось извлечь данные из базы данных и присвоенные их в массив называется $NameandAgeОбъединение двух массивов с помощью общего ключа в PHP

(Peter:12, Kim:32, Paul:23) 

С другой стороны, я также извлеченный другой набор данных из другой набор базы данных и назначены их в массив $StateandName

(New York:Peter, Washington:Kim, Tennessee:Paul) 

Что я, что добиться того, чтобы соединить эти два набора массива в один, используя имя в качестве ключа, чтобы создать таблицу, как это:

New York Peter 12, 
Washington Kim 32, 
Tennessee Paul 23, 

У меня есть что-то вроде ниже, однако это занимает очень много времени для выполнения, давая мне время ожидания. Я ищу лучший способ добиться этого.

for(){  ///////////////loop array $StateandName 
    for(){  ////////////loop array $NameandAge 
      if($nameinfirstarr == $nameinsecondarr){ 
       echo .....; ////////print out the State, Name and Age 
      } 

     } 
} 
+0

рабочий пример будет здорово – aconrad

+0

** вы можете посмотреть на этот ответ ** [PHP ARRAY РЕГИСТРИРУЙТЕСЬ] (https://stackoverflow.com/questions/18915944/join-multidimensional-array-like-sql/46951115 # 46951115) –

ответ

0

Нет необходимости в двух циклах:

foreach ($StateaandName as $state => $name) { 
    $newarr[$state][$name] = $NameandAge[$name]; 
} 

при условии, что есть 1: 1 матч между записями в двух массивах, это будет делать трюк. Если ваши массивы имеют разные имена и не совпадают с 1: 1 ;, вам понадобится ДВА этих циклов, один из которых будет работать из каждого массива поочередно.

+0

Я не знаком с ключевыми массивами. Прямо сейчас, у меня есть только один элемент массива. – user1033038

+0

Возможно, вы можете показать мне, как назначить данные для ключей и массивов значений в первую очередь? – user1033038

0

array_merge(). Является функцией PHP, чем слияние обоих массивов, переписывание значений для тех же ключей, когда ключи имеют строковые значения, а не числовые, как ваш случай.

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