Intereting Posts

индивидуальное значение в цикле

Я запускаю цикл:

$array = $_POST['d']; foreach($array as $a){ print_r($a); } 

$ array содержит массив (количество массивов меняется), и я получаю это как результат. Я просто хочу знать, как я могу вызывать эти значения отдельно в цикле. например: $ thing = значение metv в цикле

 Array ( [1173627548] => Array ( [num] => 1173627548 [methv] => dont know [q1] => - [q2] => - [q3] => U [q4] => - [comm] => ) ) 

Извините, если я неясен

print_r ($ array) показать это:

 Array ( [0] => Array ( [1173627548] => Array ( [num] => 1173627548 [methv] => dont know [q1] => - [q2] => - [q3] => U [q4] => - [comm] => ) ) [1] => Array ( [1182868902] => Array ( [num] => 1182868902 [methv] => dont know [q1] => - [q2] => - [q3] => U [q4] => - [comm] => ) ) ) Array ( [0] => Array ( [1173627548] => Array ( [num] => 1173627548 [methv] => dont know [q1] => - [q2] => - [q3] => U [q4] => - [comm] => ) ) [1] => Array ( [1182868902] => Array ( [num] => 1182868902 [methv] => dont know [q1] => - [q2] => - [q3] => U [q4] => - [comm] => ) ) ) 

Примечание: теперь у меня есть 2 массива в этом массиве

Я предполагаю, что вы хотите $a цикл в массиве $a , каждый из которых также $a массивом.

Когда вы зацикливаете массив $ array, есть один элемент, информация которого вы указали:

 Array ( [1173627548] => Array ( [num] => 1173627548 [methv] => dont know [q1] => - [q2] => - [q3] => U [q4] => - [comm] => ) ) 

Если вы хотите получить доступ methv элементу methv вы должны сделать следующее:

 foreach($array as $a){ echo $a["methv"]; // this would access $array[ 1173627548 ][ "methv" ] } 

В то время как foreach продолжается, вы будете продолжать доступ ко всем значениям $array[ ][ "methv" ] Надеюсь, что это поможет.


На основе вашего комментария, указывающего print_r($array) .

Прежде всего, позвольте мне отступом, чтобы мы получили лучший обзор массива:

  Array ( [0] => Array ( [1173627548] => Array ( [num] => 1173627548 [methv] => dont know [q1] => - [q2] => - [q3] => U [q4] => - [comm] => ) ) [1] => Array ( [1182868902] => Array ( [num] => 1182868902 [methv] => dont know [q1] => - [q2] => - [q3] => U [q4] => - [comm] => ) ) ) Array ( [0] => Array ( [1173627548] => Array ( [num] => 1173627548 [methv] => dont know [q1] => - [q2] => - [q3] => U [q4] => - [comm] => ) ) [1] => Array ( [1182868902] => Array ( [num] => 1182868902 [methv] => dont know [q1] => - [q2] => - [q3] => U [q4] => - [comm] => ) ) ) 

Я предполагаю, что вы печатаете его дважды, потому что мы можем видеть два точно массива один за другим.

Если вы хотите получить [methv] , вам нужно получить доступ:

 $array[ 0 ][ 1173627548 ][ "methv" ] $array[ 1 ][ 1182868902 ][ "methv" ] 

Итак, вы можете использовать foreach дважды:

 foreach ($array as $a) { foreach ($a as $v) { echo $v[ "methv" ]; } } 

Для отладки я бы предложил некоторую грубую, но читаемую отладку, например:

 function trace($a) { print "<pre>".var_export($a, 1)."</pre>"; } // then you can do: trace($array); 

Что касается вашего вопроса, вы можете получить доступ к ключу methv следующим образом: $array[0][1173627548]['methv'] (или $array[1173627548]['methv'] если вышеуказанный трассировка представляет собой полную переменную $ array) ,