Php 数组_diff only print给出一个结果,而不是多个结果
我是新来的,如果有人能帮我解决这个问题,我将非常高兴。我想显示从array$data中选择的不在array$time中的时间。它应该显示12个数组中的11个,因为这些数组之间有一个相同的项。但是,它只显示其中一个。希望有人能帮助我。提前谢谢你Php 数组_diff only print给出一个结果,而不是多个结果,php,arrays,Php,Arrays,我是新来的,如果有人能帮我解决这个问题,我将非常高兴。我想显示从array$data中选择的不在array$time中的时间。它应该显示12个数组中的11个,因为这些数组之间有一个相同的项。但是,它只显示其中一个。希望有人能帮助我。提前谢谢你 <?php $q = "SELECT masa FROM pra_temujanji where status = 'Diterima' and hari = '$hari' and Doktor = '$Doktor'"; $select = m
<?php
$q = "SELECT masa FROM pra_temujanji where status = 'Diterima' and hari = '$hari' and Doktor = '$Doktor'";
$select = mysql_query($q);
$time = mysql_fetch_array($select);
$qry = "SELECT Masa FROM masa_temujanji";
$qid = mysql_query ($qry);
$data = mysql_fetch_array($qid);
foreach($time as $elem) $time[$elem['masa']];
foreach($data as $elem) $data[$elem['Masa']];
ksort($data); ksort($time);
$waktu = array_diff($data, $time);
?>
<option value="<?php print_r($waktu['Masa'])?>"><?php print_r($waktu['Masa'])?></option>
</select>
我真的不知道以前的帖子会不会被替换,所以我只是在这里编辑。我现在可以显示数组,但是输出是这样的
09:00:00
09:30:00
.
.
.
注意:不明索引:Masa。。。。。。
10:00:00
12:00:00
我不想让错误出现。这实际上是两个数组之间的数组差异。怎么能跳过呢
守则:
<?php
$q = "SELECT masa FROM pra_temujanji where status = 'Diterima' and hari = '$hari' and Doktor = '$Doktor'";
$select = mysql_query($q);
while($time = mysql_fetch_array($select)):
$qry = "SELECT Masa FROM masa_temujanji";
$qid = mysql_query ($qry);
while ($data = mysql_fetch_array($qid)):
$waktu = array_diff($data, $time);
?>
<option value="<?php print_r($waktu['Masa'])?>"><?php print_r($waktu['Masa'])?></option>
<?php
endwhile;
?>
</select>
<?php
endwhile;
?>
谢谢你的帮助。这是解决我问题的代码
<?php
$q = "SELECT masa FROM pra_temujanji where status = 'Disahkan Lulus' and hari = '$hari' and Doktor = '$Doktor'";
$select = mysql_query($q);
while ($time = mysql_fetch_array($select)){
$masa[] = $time['masa'];
}
if(isset($masa)){
$qry = "SELECT Masa FROM masa_temujanji";
$qid = mysql_query ($qry);
while ($data = mysql_fetch_array($qid)){
$Masa[] = $data['Masa'];
}
$waktu = array_diff($Masa, $masa);
foreach( $waktu as $key => $value){
?>
<option value="<?php echo $value ?>"><?php echo $value ?></option>
<?php } }
else{
$qry = "SELECT Masa FROM masa_temujanji";
$qid = mysql_query ($qry);
while ($data = mysql_fetch_array($qid)){
$Masa[] = $data['Masa'];
}
//$waktu = array_diff($Masa, $masa);
foreach( $Masa as $key => $value){
?>
<option value="<?php echo $value ?>"><?php echo $value ?></option>
<?php
}}
?>
再次感谢。在数组diff do var\u dump$数据之前;var_dump$time;这里给出结果。foreach循环的意义是什么?你基本上只是在做每件事。。。{ 1; }. 除了可能尝试访问不存在的数组键之外,它们是不做任何事情的循环。请注意,fetch调用仅从查询返回一行数据。这意味着您的$time和$data数组将只包含一个元素作为开头。谢谢@user4035。我确实试着把它们放进去,但我还是只得到了一个结果。谢谢你@MarcB。我认为fetch调用可以返回所有数据。我确实尝试过使用while$waktu=array_diff$data$time:但它一直在加载,为什么不呢?如果array_diff返回非空数组,则while循环永远无法终止。你真的需要开始阅读你正在使用的函数的文档。很明显,你只是在做货运邪教节目。