Как извлечь данные из сложного массива в php? - PullRequest
0 голосов
/ 09 декабря 2010

Я создаю сообщение в следующей форме:

while ( $tracks = mysql_fetch_array($trackstring) ){
    $tracks = mysql_fetch_array($trackstring) ){
echo "<li class="tracklist">
<input type="text" name="tracknum-[$tracks['song_id']]" 
value="".$tracks['song_tracknumber']"/> 
<input type="text" name="trackname[$tracks['song_id']]" 
value="".$tracks['song_title'].""/> 
</li>";
    }

создает массив $ _POST, который выглядит следующим образом:

Array ( [tracknum] => Array ( [13] => 1 [14] => 2 [15] => 3 ) [trackname] => Array ( [13] => One Beat [14] => Faraway [15] => Oh! ) 

по сути, я хочу
1Один удар, чтобы войти в id = 13 2 - Далеко, чтобы войти в id = 14

Я могу видеть все данные там, но я не совсем уверен, как манипулировать ими ... Я не такгорячий с массивами.Как я могу ссылаться на них с $ _POST ['????'], включая значения идентификатора

Ответы [ 3 ]

3 голосов
/ 09 декабря 2010

используйте

$_POST['trackname'][13]

, чтобы получить "Один удар".

0 голосов
/ 13 декабря 2010

большое спасибо за отверстие черепа на форумах sitepoint:)

$tracknum = $_POST['tracknum'];
$trackname = $_POST['trackname'];
if(count($tracknum) == count($trackname)){ // make sure both the array have same elements
    foreach($tracknum as $songid=>$tracknumber){
        $song_tracknumber = $tracknum[$songid];
        $song_title = $trackname[$songid];
        $sql = "UPDATE songs SET song_tracknumber='$song_tracknumber', song_title='$song_title' WHERE song_id=$songid";
    }
}  
0 голосов
/ 09 декабря 2010

Попробуйте использовать

print_r($_POST);

Это даст вам четкий отступ для вашего POST, чтобы вы могли легко перемещаться по нему.

А затем отредактируйте свой вопрос, чтобы он звучал более четко, если вам все еще нужна помощь.

...