2015-03-18 4 views
4

Я получаю массив из следующего кодаFetch значения из многомерного массива

$classes = $mb->makeNumericArray($data['GetClassesResult']['Classes']['Class']); 
$result = $classes; 

    echo '<pre>'; 
     print_r($result); 
    echo '</pre>'; 

и массива

Array 
(
    [0] => Array 
     (
      [ClassScheduleID] => 
      [ClassDescription] => Array 
       (
        [Description] => 
        [Program] => Array 
         (
          [ScheduleType] => DropIn 
         ) 
       ) 

      [Staff] => Array 
       (
        [SortOrder] => 
       } 
     ) 

    [1] => Array 
     (
      [ClassScheduleID] => 
      [ClassDescription] => Array 
       (
        [Description] => 
        [Program] => Array 
         (
          [ScheduleType] => DropIn 
         ) 
       ) 

      [Staff] => Array 
       (
        [SortOrder] => 
       } 
     ) 
) 

Я попытался извлечь код, принимая ссылку из этого code at stackoverflow,

foreach($result as $res) 
    { 
     $classscheduleid= $res['ClassScheduleID']; 
     echo $classscheduleid; 

    } 

На данный момент я пробовал этот код, чтобы напечатать ClassScheduleID.

Но он не правильно отображает данные. Он пропускает значения в [0], а в остальной части массива он повторяет результат.

Может кто-нибудь сказать мне, как я могу принести ClassScheduleID вместе с Description, ScheduleType и sortorder от полного массива?

+0

Просто убедитесь, что вы не смешиваете «результат» и «классы», не так ли? Есть ли какой-либо код, который мутирует результат в классы и влияет на набор данных? – mvbrakel

+0

@mvbrakel Я отредактировал этот вопрос, и 2 значения не смешиваются, может ли PLZ перейти через него снова – st001

+0

Я вижу, что вы редактировали вопрос, чтобы показать, как классы мутируют к результатам. Я поддержал отредактированный ответ n-dru. Это должно делать свое дело. Только в своем ответе замените 'classes' на' results', чтобы соответствовать вашему обновленному вопросу – mvbrakel

ответ

0

Вы должны перебрать внутренний массив:

foreach($classes as $key => $internal_array){ 
    $classscheduleid= $internal_array['ClassScheduleID']; 
    echo $classscheduleid; 
    //again, ClassDescription is also array 
    foreach($internal_array['ClassDescription'] as $internal_key => $res){ 

     echo " $internal_key => $res";//etc 

    } 
} 

Или это рекурсивно:

function echo_array($a, $key){ 
    foreach($a as $key1 => $array1){ 
     if(!is_array($array1)){ 
      echo "$key $key1 : $array1<br/>"; 
     }else{ 
      echo_array($array1,$key1); 
     } 
    } 
} 
echo_array($a,''); 
+0

эта работа? Когда я смотрю на код, он выглядит как '$ res ['ClassScheduleID'];' не будет существовать? Я что-то упускаю? 'ClassScheduleID' является ключом в цикле' $ internal_array', не так ли? – mvbrakel

+0

@ n-dru Я получаю такой результат 0 => 0 => 0 – st001

+0

@ n-dru Я получаю результат сейчас, но не в форме, которую я хочу, так как каждый раз каждую ценность отдельно, чтобы я мог сохранить каждый из них в базе данных – st001

0

если вы используете foreach ($result as $row) , то вы будете перебрать все $ результат [0], $ результат [1] ... , тогда вы эхо $result[0]["ClassScheduleID"], которые в вашем случае, посмотрите на print_r ($result), это emptry, поэтому вы не получите результат.

+0

Я изменил вопрос, может ли u plz пойти через него еще раз, так как мой массив имеет значение – st001

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