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

如何通过循环在多维数组中分离和分配数据-PHP,php,arrays,Php,Arrays,我有一个来自另一个脚本的关联数据数组: while($row = mysqli_fetch_assoc($query)){ $replyArray[] = array( 'did' => $row['discussion_id'], 'rid' => $row['reacter_id'], 'reply' => $row['reply'], 'date' => $row['date']

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

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>";               

                            }

                        }
                };
//在这个函数中,我们从数组中提取数据(讨论)
//此函数在disReply函数中调用。
函数子分区($replyArray){
$reply\u count=count($replyArray);
对于($x=0;$x<$reply\u count;$x++){
回显“
数据:”($x+1)。“
”; foreach($replyArray[$x]作为$key=>$value){ echo$data=$key.:“$value.”
”; } } };
上面的示例仅通过回显变量$data返回所有相关的成对数据。

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

$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建议使用PHPextract()

for($x=0;$x<$reply\u count;$x++){
摘录($replyaray[$x]);
}

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

类似于?哇…这个函数将非常强大…我刚刚阅读了PHP手册。它说它将键名视为变量,将值视为变量值。谢谢你,你的答案也很有用。我真的很困惑,例如,当$x=0时,第一个$key是“did”。变量变量允许您获取该值,现在使用该值构造一个变量,就像$$key=${“did”}=$didgreat!!。它起作用了,但我必须声明我在内部foreach循环之外使用了变量。所以我在for循环中成功地使用了它:
for($x=0; $x < $reply_count; $x++){
    extract($replyArray[$x]);
}