2010-04-07 2 views
3

Я создал функцию на PHP, которая вызывает веб-сервис и анализирует результат, оценивая значения переменных и возвращая их все как массив. Это все работает отлично, но я сталкивался с необходимостью иметь «массив в моем массиве»Добавление массива в массив в функции PHP

Я присваивающее значение, как показано ниже:

$productName = $product->Name; 
$productID = $product->ID; 

$productArray = array(
      'productName' => "$productName", 
      'productID' => "$productID" 
      ); 

return $productArray; 

Однако теперь у меня есть часть данных, которая приходит назад с несколькими результатами, поэтому мне нужно иметь дополнительный массив для их хранения, я получаю значения из возвращаемого XML, используя цикл foreach, однако я хочу иметь возможность добавлять их в массив с именем, чтобы я мог ссылаться на них в возвращаемые данные, вот где у меня проблема ...

$bestForLists = $product->BestFors; 
     foreach($bestForLists as $bestForList) 
     { 
      $productBestFors = $bestForList->BestFor; 
      foreach($productBestFors as $productBestFor) 
       { 
        $productBestForName = $productBestFor->Name; 
        $productBestForID = $productBestFor->ID; 
       } 
     } 

Я попытался создать массив для них, используя код ниже:

$bestForArray[] = (array(
       "productBestForID" => "$productBestForID", 
       "productBestForName" => "$productBestForName" 
       )); 

, а затем в конце слияния их вместе:

$productArray= array_merge($productArray,$bestForArray); 

Если я распечатать возвращаемое значение, я получаю:

Array ([productName] => Test Product [productID] => 14128 [0] => Array ([productBestForID] => 56647 [productBestForName] => Lighting) [1] => Array ([productBestForID] => 56648 [productBestForName] => Sound))    

Я хотел бы дать внутреннему Array имя, чтобы я мог ссылаться на него в своем коде, или есть лучший способ сделать это, на данный момент я использую следующее на моей странице PHP для получения значений:

$productName = $functionReturnedValues['productName']; 

Я хотел бы использовать следующий получить доступ к массиву я мог бы перебрать:

$bestForArray = $functionReturnedValues['bestForArray']; 

Надежда кто-то может помочь

ответ

3

вы могли бы написать

$productArray['bestForArray'] = $bestForArray; 

вместо от

$productArray= array_merge($productArray,$bestForArray); 

Скажите, если это трюк! Jerome Wagner

+0

Отлично, не думал, что это будет так просто! благодаря –

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