如何通过循环在多维数组中分离和分配数据- PHP


How to separate and assign data in a multi dimensional array via a loop - PHP

我有一个来自另一个脚本的数据关联数组:

while($row  =  mysqli_fetch_assoc($query)){
    $replyArray[] = array(
        'did' => $row['discussion_id'],
        'rid' => $row['reacter_id'],
        'reply' => $row['reply'], 
        'date' => $row['date']
    );  
}

我有一个函数将使用这个数组$replyArray:

        //In this function we extract data(discussions) from array
    //This function is called inside disReply function.
    function subDiscussion($replyArray){
                        $reply_count    = count($replyArray);
                        for($x=0; $x < $reply_count; $x++){
                            echo "<br><h3>Data: ".($x +1).' <br>'."</h3>" ;
                            foreach($replyArray[$x] as $key => $value){
                                echo $data= $key.": ". $value."<br>";               
                            }
                        }
                };

上面的例子通过回显变量$data返回所有相关的成对数据。

我想要实现的是将数据(成对数据)分离为不同的变量:

$rid =其值

$did =它的值

$reply =其值

$date =其值

原因是我想把它们放在HTML设计中,在那个函数中。

谢谢。

变量将在这里提供帮助:

// inside the final (foreach) loop
foreach($replyArray[$x] as $key => $value){
    $$key = $value;     
}
// now use these variables, $did, $rid, etc., e.g. save to an array or use in a function - else they will be overwritten in next iteration of parent for loop

在这里阅读更多关于变量的信息。

根据Patrick Q建议使用PHP extract()

for($x=0; $x < $reply_count; $x++){
    extract($replyArray[$x]);
}

extract()此函数将键视为变量名,将值视为变量值。对于每个键/值对,它将创建一个变量