2012-07-13 30 views
1

我正在嘗試在數組中找到picid,但它不工作。當我回應它時,什麼都沒有出現。數組搜索不能在PHP中工作

這裏是我的代碼

<?php $psql=mysql_query("select * from gallery where userId='$miid'"); 
$photo1 = array(); 

while($photo=mysql_fetch_assoc($psql)) { 
    $photo1[]=$photo; 
    print_r($photo); 
} 

foreach($photo1 as $k => $v){ 
    if($v['picId']==$mipic){ 
    $pic="uploads/".$v['photo']; 
    echo ">>>". $key=array_search($v['picId'],$photo1); 
?> 

<a href="eg?next=<?php echo $photo[$k+1];?>">NEXT</a> 
<img src="<?php echo $pic; ?>" width="300px" height="300px"> 
<a href="eg?previous=<?php echo $photo[$k-1];?>">PREVIOUS</a> 
<?php 
    } 
    }?> 
+0

您的調試信息顯示什麼?你是否檢查過'$ k'和'$ v'以確保它們正確填充? – andrewsi 2012-07-13 14:26:06

+0

是的,我已經檢查過它的確定 – 2012-07-13 14:27:00

+0

代碼本身沒有關閉'}}',你忘記在這裏或在你的腳本中發佈它們嗎? – Peon 2012-07-13 14:27:43

回答

1

array_search不是遞歸。 $v存在於$photo1中,而$v['picId']僅存在於$v中。

這使得$key=array_search($v['picId'],$photo1)返回false其中,當你回聲它,將打印爲無。

我不確定你爲什麼要使用array_search。爲了檢索下一個和以前的picId,試試這個:

<a href="modules/gallery/miloader.php?next=<?php echo $photo1[$k+1]['picId'];?>">NEXT</a> 
<img src="<?php echo $pic; ?>" width="300px" height="300px"> 
<a href="miloader.php?previous=<?php echo $photo1[$k-1]['picId'];?>">PREVIOUS</a> 

雖然小心的HREF中的,一個是modules/gallery/miloader.php,而對方只是miloader.php。所以,除非你真的有兩個不同的miloader.php文件(每個目錄中有一個文件),否則其中一個是錯誤的。

+0

下一個和上一個picid的值感謝幫助朋友的工作真棒 – 2012-07-13 14:42:28