Php 数组_diff only print给出一个结果,而不是多个结果

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

我是新来的,如果有人能帮我解决这个问题,我将非常高兴。我想显示从array$data中选择的不在array$time中的时间。它应该显示12个数组中的11个,因为这些数组之间有一个相同的项。但是,它只显示其中一个。希望有人能帮助我。提前谢谢你

<?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循环永远无法终止。你真的需要开始阅读你正在使用的函数的文档。很明显,你只是在做货运邪教节目。