2012-04-25 1 views
1

Привет, друзья, я работаю над обзором. Мне нужно извлечь массив из массива, хранящегося внутри него.Выберите значение из двумерного массива на основе значения, хранящегося внутри ключа?

Как это сделать Я ищу, чтобы извлечь массив ответов на основе идентификатора вопроса, например 13.

У меня есть вопрос со мной. массив ответов связан с вопросом.

.how извлечь массив вопросов и ответить на массив из основного массива на основе значения вопроса идентификатора, например 13

теперь, если я нужен массив, который имеет вопрос идентификатор вместе с соответствующим идентификатором, как сделайте это из моей структуры массива?

мой код, как этот

Array 
(
    [0] => Array 
     (
      [que_info] => Array 
       (
        [question_id] => 13 

        [description] => Overall Customer Satisfaction. 




       ) 

      [answers] => Array 
       (
        [0] => Array 
         (
          [answer_id] => 45 

          [answer_text] => Very dissatisfied 

         ) 


       ) 

     ) 

    [1] => Array 
     (
      [que_info] => Array 
       (
        [question_id] => 14 

        [description] => Progress (often referred to as Task Resolution or similar) 


       ) 

      [answers] => Array 
       (
        [0] => Array 
         (
          [answer_id] => 52 

          [answer_text] => None 

         ) 

        [1] => Array 
         (
          [answer_id] => 53 

          [answer_text] => Very little 

         ) 


         ) 



       ) 

     ) 

любая помощь будет оценена :)

ответ

2

Во-первых, это не 2D массив, это дерево массив. 2D-массив всегда имеет массив элементов [x] [y] для каждого массива [x] и никогда не имеет никакого массива [x] [y] [z].

Истерируйте массив с помощью foreach и верните список ответов, когда вы найдете элемент с идентификатором, соответствующим question_id.

Пример:

foreach($questions as $question) { 
    if($question['que_info']['question_id'] === $questionId) 
     return $question['answers']; 
    } 
+0

ya благодарит за ваш ответ, вы правы, новичок в массивах :) Я попробую, у меня будет как массив вопросов и ответов, который он держит для примера с идентификатором вопроса 13 – Rinzler

+0

И я немного бессерверщик :) – nyson

+0

i получил мой ответ, используя ваш метод, было просто сделать спасибо, спасибо :) – Rinzler

2
function find_question($array, $id) { 
    foreach ($array as $arr) 
    { 
     if ($arr['que_info']['question_id'] == $id) 
      return $arr; 
    } 
} 

var_dump(find_question($array, 13)); 
var_dump(find_question($array, 14)); 
+0

спасибо за ваш ответ, я буду стараться и комментировать назад на него. – Rinzler