如何通过循环在多维数组中分离和分配数据-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]);
}