Я запускаю цикл:
$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) ,