2014-01-20 3 views
0

Я пишу скрипт, который собирает все записи метаданных и генерирует массив всех сообщений и их соответствующих метаданных.PHP array building

Все, кажется, работает нормально, за исключением тех случаев, когда я иду, чтобы подтолкнуть метаданные в массив. Ниже приведен код, который я использую, и пример вывода, который я получаю. Что это

if (mysql_num_rows($currentCourtMetaGet) != null) { 
       $metaArray = array(); 
       while($currentCourseMetaArray = mysql_fetch_array($currentCourseMetaGet)){ 

        $metaKey = $currentCourseMetaArray['meta_key']; 
        $metaValue = $currentCourseMetaArray['meta_value']; 
        $metaInfo = "$metaKey => $metaValue"; 
        array_push($metaArray, $metaInfo); 
       } 

       $currentcourse = array(
        "course_name" => $queryOneResultsArray['post_title'], 
        "course_id" => $queryOneResultsArray['id'], 
        "course_meta" => $metaArray   
       ); 
      array_push($courseArray, $currentcourse); 

      } 

Meta выход массива:

[course_meta] => Array 
       (
        [0] => licence_code => 
        [1] => is_vocable => 0 
        [2] => region => Gladstone 
       ) 

Мой желаемый результат заключается в следующем.

[course_meta] => Array 
       (
       licence_code => 
       is_vocable => 0 
       region => Gladstone 
       ) 

Может кто-нибудь предложить решение?

ответ

1

Вы можете попробовать это:

if (mysql_num_rows($currentCourtMetaGet) != null) { 
     $metaArray = array(); 
     while($currentCourseMetaArray = mysql_fetch_array($currentCourseMetaGet)){ 

      $metaKey = $currentCourseMetaArray['meta_key']; 
      $metaValue = $currentCourseMetaArray['meta_value']; 
      $metaArray[$metaKey] = $metaValue; 
     } 

     $currentcourse = array(
      "course_name" => $queryOneResultsArray['post_title'], 
      "course_id" => $queryOneResultsArray['id'], 
      "course_meta" => $metaArray   
     ); 
    array_push($courseArray, $currentcourse); 

    } 

Он будет:

[course_meta] => Array 
      (
      [licence_code] => 
      [is_vocable] => 0 
      [region] => Gladstone 
      ) 

Массивы "сбрасываются" в формате [key] => value. Если вы не выдаете их вручную, то точный формат, который вы пытаетесь достичь, невозможен.

0

Вы пробовали это сделать так?

$metaArray[$metakey] = $metaInfo; 

Существует не способ добавить значения с ключевыми использованием ассоциативных массивов, что вы создали с

$metaInfo = "$metaKey => $metaValue"; 

строковая переменная, которая не имеет ключа